2

我想查询 IP 以获取其主机名。这个的标准端口是什么?它可能是 /etc/services 中“主机名”下列出的端口 101 吗?

4

3 回答 3

2

中发现的大多数“知名端口”/etc/services都是历史实现的残余——这些“历史协议”的实现不再使用。

您找到的端口 101 被注释为“NIC 主机名服务器”。我发现RFC 811RFC953描述了在端口 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()在 Windows、MacBSD 和 Linux 下可从 C 中获得的功能。

于 2010-04-04T14:36:39.783 回答
2

UDP 端口 101 用于提供“主机名”服务,但原始 RFC ( RFC811 ) 已被RFC953淘汰,并且 RFC953 被标记为“历史”。

这些天来,您会咨询DNS(域名系统),其中列出了许多其他相关的 RFC 以对其进行更新。而且您通常会针对您使用的语言使用适当的库函数来咨询 DNS(一个问题是您应该咨询的 DNS 服务器的 IP 地址是什么)。

在这两种情况下(主机名和 DNS),您咨询的机器不是具有您感兴趣的特定 IP 地址的机器。从您的问题中不清楚您是否希望询问具有感兴趣 IP 地址的主机它的名称是,或者您是否希望向另一台机器提出问题。在实践中,您最终会询问其他机器 - DNS 服务器。

于 2010-04-04T14:47:47.980 回答
-1

很好的 dns 在端口 53 上运行

于 2010-04-04T14:40:03.253 回答