我需要从我的No-IP主机名中解析 IP,这是我设置的,因为我在路由器后面,并且该路由器没有静态公共 IP。主机名设置为 DNS A 记录。我需要 IP 才能从计算机反向连接到我自己的 PC。
我已经尝试过:
IPAddress address = Dns.GetHostAddresses("****.ddns.net")[0];
但这只会将“127.0.0.1”写入“地址”。
有人能帮我吗?
我认为,问题在于,这"****.ddns.net"
不是一个可解析的 IP 地址。在我的示例中,我使用"heise.de"
它并且工作正常。
什么GetHostAddresses
是,询问您的计算机的名称服务是否知道该具体名称。如果它不知道自己,它会问它的父母,依此类推。如果有人知道这个名字,它会给你那个IP。但要让它起作用,你必须要求一个具体的可解析名称。
此外,您应该检查返回的列表是否为空:
System.Net.IPAddress[] adresses = System.Net.Dns.GetHostAddresses("heise.de");
if (adresses.Length > 0)
{
System.Net.IPAddress address = System.Net.Dns.GetHostAddresses("heise.de")[0];
}
看起来您正在使用 DynDNS,因此您要查找的名称应该是众所周知的。如果你没有得到正确的 ip,那么你的 dns 系统设置有问题。