私は以下を実行しています:
perl -wl -e 'print gethostbyname ("1234");'
123424Ò
running も定義された結果を返しますが、これはここgethostbyname ("1")
に書かれていることとはまったく一致しません。
この方法を使用する必要があるかどうか疑問に思っていますか?私がやろうとしているのは、特定のホスト名が有効かどうかを調べることです。
私は以下を実行しています:
perl -wl -e 'print gethostbyname ("1234");'
123424Ò
running も定義された結果を返しますが、これはここgethostbyname ("1")
に書かれていることとはまったく一致しません。
この方法を使用する必要があるかどうか疑問に思っていますか?私がやろうとしているのは、特定のホスト名が有効かどうかを調べることです。
ブラウザ1249767172
に入力すると、Google にアクセスする可能性があります。これは、有効な IP アドレスが 0 から 4294967295 までの数字にすぎないためです。
確かに、ドット形式の表記法 ( 74.125.239.4
) の方がよく知られていますが、多くの場所では、10 進数を直接 ( 1249767172
) または 16 進数表記 ( 0x4A7DEF04
) でさえも受け入れます。
有効な IP アドレスを指定しているため、エラーは返されません。
$ perl -MSocket=inet_ntoa -E'
my $addr = gethostbyname($ARGV[0]);
say inet_ntoa($addr);
' 1249767172
74.125.239.4
$ perl -MSocket=inet_ntoa -E'
my $addr = gethostbyname($ARGV[0]);
say inet_ntoa($addr);
' 1
0.0.0.1
$ perl -MSocket=inet_ntoa -E'
my $addr = gethostbyname($ARGV[0]);
say inet_ntoa($addr);
' 1234
0.0.4.210
(正確な動作はシステムによって異なる場合があります。gethostbyname
同じマシン上の FireFox では認識されますが、私の Windows ビルドと cygwin ビルドではこれらの数値が認識されません。)