2011-01-07 4 views
3

나는 각각의 IP로 변환하고자하는 도메인 목록을 가지고 있습니다. 의가 있다고 가정 해 봅시다 :일괄 변환 도메인을 IP로 변환

domain1.com
domain2.com
domain3.com

나는 등, 이러한 각 도메인의 IP를 좀하고 싶습니다 :

domain1.com -> 111.111 .111.111
domain2.com -> 222.222.222.222
domain3.com -> 333.333.333.333

내가 온라인으로 볼 펄 스크립트를 사용하여 승 내 도메인 목록을 추가 해요 여기 말한다 :

echo " 
<insert_list> 
" | perl -MSocket -lne' 
my $address = (split /:/)[ 0 ] or next; 
my $number = inet_aton $address; 
my $ip  = inet_ntoa $number; 
print "$address -> $ip"; 
' 

이 작동하지만, 내 목록에있는 도메인의 일부가 만료 더 이상 IP를 가지고하지 않은 경우에 나는 다음과 같은 오류 메시지가 얻을 :

Bad arg length for Socket::inet_ntoa, length is 0, should be 4 at -e line 4, <> line 9. 

내가 좋겠를 도메인이 할당되지 않았는지 알려주는 인쇄 된 목록을 원합니다. 예 :

domain1.com -> 111.111.111.111
domain2.com -> 222.222.222.222
이 이 domain3.com - domain4.com> 333.333.333.333
-> 알 수없는 호스트

내 목록입니다 상당히 길다 : 정리하고 정리할 약 500 개의 도메인이있다. 각 도메인의 IP를 얻는 가장 좋은 방법은 무엇입니까?

도움을 주시면 감사하겠습니다. 감사!

답변

3

$ip 할당 라인을 변경해보십시오 :

my $ip = $number ? inet_ntoa $number : "Unknown Host"; 

이 비어의 여부, 그리고 그것이 인쇄에 주소를 변환하는 inet_ntoa 전화가 않습니다되지 않은 경우에만 여부를 확인하기 위해 $number 변수를 확인 형태. $number이 비어 있으면 문자열에 "알 수없는 호스트"가 할당됩니다.

+0

완벽하게 작동합니다! 많은 분들께 감사드립니다. 그렉! –

관련 문제