クロスポスト:http ://www.perlmonks.org/?node_id = 988678
私はperlを初めて使用します。getaddrinfoを使用してすべてのワイルドカードインターフェイスをフェッチしようとしています(Socket6を使用しています(IO:Socket:IPがWindowsボックスで機能しませんでした))。
use Socket;
use Socket6;
@res = getaddrinfo('<wildcard>', 3786, AF_UNSPEC, SOCK_STREAM);
while(scalar(@res)>=5){
($family, $socktype, $proto, $saddr, $canonname, @res) = @res;
($host, $port) = getnameinfo($saddr, NI_NUMERICHOST | NI_NUMERICSERV);
print ("\nhost= $host port = $port");
}
プレースホルダーにどの値を使用すればよいのでしょうか。結果としてIPv4とIPv6ワイルドカードアドレス(0.0.0.0および::)を取得して、使用しているマシンに関係なくバインドできるようにします。 (IPv4またはIPv6)。'c'では、nullホスト名ポインタを指定すると機能します。perlの場合は''、undefを試しましたが、ループバックアドレスが返されます。