OpenDNS 有一个资源记录设置,因此如果你请求该记录,它将返回 IP 地址(參考)。
因此,您可以使用这样的命令host myip.opendns.com 208.67.222.222
,您得到的结果将是您正在使用的计算机的 IP 地址,或者您所在的 NAT 使用的公共地址。
我想知道是否有任何开源 DNS 服务器也可以执行此功能。
答案1
答案2
答案3
这是一个非标准 RR。如果您想做一些或多或少可移植的事情,请查看 STUN 协议。它非常糟糕,但至少它是标准的,并且专门设计用于允许主机发现其自己的 IP 地址和端口,如 STUN 服务器所见。有可用的公共 STUN 服务器,列于此处:http://www.voip-info.org/wiki/view/STUN。同一网页有指向客户端库和服务器软件的指针。
基于 DNS 的方法的优点是您可以使用已有的工具。但由于它是非标准的,因此不可移植。