それぞれのIPに変換したいドメインのリストがあります。私はこれらのドメインのそれぞれのIPを取得したいと思いバッチ変換ドメインからIP
domain1.com
domain2.com
domain3.com
、のような:さんが言ってみましょう
domain1.com - > 111.111 .111.111
domain2.com - > 222.222.222.222
domain3.com - > 333.333.333.333
私は私がオンラインで見つけるPerlスクリプトを使用して、私のドメインリストwを追加していますここでは述べています:
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 - > 333.333.333.333
domain4.com - >未知のホスト
私のリストですかなり長い:私は約500ドメインを整理し、クリーンアップしている。各ドメインのIPを取得する最良の方法は何でしょうか?
ご協力いただければ幸いです。ありがとう!これは、空だかどうかを確認する$number
変数をチェックし、そうでない場合にのみ、それが印刷可能にアドレスを変換するinet_ntoa
を呼び出しん
my $ip = $number ? inet_ntoa $number : "Unknown Host";
:
完璧に動作します!多くのありがとうグレッグ! –