Какой порт для запроса имени хоста? - PullRequest
2 голосов
/ 04 апреля 2010

Я хочу запросить IP, чтобы получить его имя хоста. Какой стандартный порт для этого? Может ли это быть порт 101, указанный в «именах хостов» в / etc / services?

Ответы [ 3 ]

2 голосов
/ 04 апреля 2010

UDP-порт 101 используется для предоставления услуги «имя хоста», но исходный RFC ( RFC811 ) устарел RFC953 , а RFC953 помечен как «исторический».

В эти дни вы обращаетесь к DNS (системе доменных имен), в котором есть много других соответствующих RFC, перечисленных для его обновления. И вы обычно используете соответствующие функции библиотеки для языка, который вы используете для обращения к DNS (одна проблема заключается в том, каким IP-адресом DNS-сервера вы должны пользоваться).

В обоих этих случаях (имя хоста и DNS) вы обращались к компьютеру, отличному от того, с конкретным IP-адресом, который вас интересует. Из вашего вопроса не ясно, ожидаете ли вы спросить хост с интересным IP-адресом как его зовут, или ожидаете ли вы задать вопрос другой машине. На практике вам придется задавать вопросы другим машинам - DNS-серверам.

2 голосов
/ 04 апреля 2010

Большинство "хорошо известных портов", найденных в /etc/services, являются остатками исторических реализаций - реализации этих "исторических протоколов" больше не используются.

Найденный вами порт 101 прокомментирован как «Сервер имен хостов NIC». Я обнаружил, что RFC 811 и RFC953 описывают протокол, обслуживаемый через порт 101. Интересно отметить, что единственная реализация во время RFC 811 (1982) работала на конкретном машина на SRI International. «Протокол порта 101» - это не услуга, которую вы найдете в Интернете в наше время.

Единственная услуга, о которой я могу подумать, которая предназначена для предоставления необходимой вам информации, - это SNMP, и нет никаких гарантий, что вы либо найдете работающую службу SNMP, либо знаете необходимое ключевое слово для доступа («имя сообщества») чтобы увидеть имя удаленного хоста через службу SNMP.

Многие конкретные реализации служб отвечают именем хоста, например:

telnet alias.machine.net 25
220 realname.machine.net ESMTP Postfix (Debian/GNU)

Редактировать: Несколько других ответов предлагают вам заглянуть в порт DNS. DNS (система доменных имен) не совсем то, что вы просили. Однако если вы хотите использовать поиск DNS, проверьте функцию gethostbyaddr(), доступную в C в Windows, MacBSD и Linux.

0 голосов
/ 04 апреля 2010

хорошо днс работает на порту 53

...