Я виконую наступне:
perl -wl -e "print gethostbyname ("1234");"
123424Ò
також працює gethostbyname ("1")
повертає певний результат, це не відповідає тому, що написано тут зовсім.
Я задаюсь питанням, чи повинен я навіть використовувати цей метод? Що я намагаюся зробити, це знайти, чи дійсний імен хосту.
Відповіді:
1 для відповіді № 1Тип 1249767172
у ваш браузер, і ви можете прийти до Google. Це тому, що дійсна IP-адреса - це лише число між 0 і 4294967295.
Звичайно, ви більше знайомі з позначеннями пунктирної форми (74.125.239.4
), але багато місць також приймають десяткове число безпосередньо (1249767172
) або навіть шістнадцяткове позначення (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
з мого Windows та мого cygwin будує, не розпізнати ці цифри, хоча FireFox на тому ж комп'ютері.)