Изпълнявам следното:
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 builds не разпознават тези номера, въпреки че FireFox на същата машина прави.)