すべてのツール (nslookup、curl、wget、firefox など) がアドレスを解決できる完全に機能する Linux セットアップ (Ubuntu 8.04) を (私が知る限り) 持っています。ただし、次のコードは失敗します。
$s = new IO::Socket::INET(
PeerAddr => 'stackoverflow.com',
PeerPort => 80,
Proto => 'tcp',
);
die "Error: $!\n" unless $s;
以下のことを確認しました。
Perl は gethostbyname でアドレスを解決できます (つまり、以下のコードが機能します):
my $ret = gethostbyname('stackoverflow.com'); print inet_ntoa($ret);
元のソース コードは Windows で動作します
- これは、LWP がこの動作を使用しようとするため (つまり、ホスト名を解決する必要がある)、動作するはずの方法です (実際、LWP が機能しない理由をデバッグしようとして、問題に遭遇しました)。
- スクリプトを実行しても DNS 要求は発行されません (そのため、名前の解決も試みません)。Wireshark で検証済み