从 No-IP DNS A 解析 IP
Resolve IP from No-IP DNS A
我需要从我的 No-IP 主机名解析 IP,我设置它是因为我在路由器后面,而这个路由器没有静态 public IP。主机名设置为 DNS A 记录。
我需要IP从一台电脑反向连接到我自己的电脑。
我已经尝试过:
IPAddress address = Dns.GetHostAddresses("****.ddns.net")[0];
但这只会将“127.0.0.1”写入"address"。
有人可以帮助我吗?
我认为,问题在于 "****.ddns.net"
不是可解析的 IP 地址。在我的示例中,我使用 "heise.de"
并且它工作正常。
GetHostAddresses
的作用是询问您计算机的名称服务是否知道该具体名称。而如果它不知道自己,它会询问它的parent,等等。如果有人知道这个名字,它会把那个 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 系统设置有问题。
我需要从我的 No-IP 主机名解析 IP,我设置它是因为我在路由器后面,而这个路由器没有静态 public IP。主机名设置为 DNS A 记录。 我需要IP从一台电脑反向连接到我自己的电脑。
我已经尝试过:
IPAddress address = Dns.GetHostAddresses("****.ddns.net")[0];
但这只会将“127.0.0.1”写入"address"。
有人可以帮助我吗?
我认为,问题在于 "****.ddns.net"
不是可解析的 IP 地址。在我的示例中,我使用 "heise.de"
并且它工作正常。
GetHostAddresses
的作用是询问您计算机的名称服务是否知道该具体名称。而如果它不知道自己,它会询问它的parent,等等。如果有人知道这个名字,它会把那个 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 系统设置有问题。