日期:2014-05-16  浏览次数:21081 次

关于Dns.GetHostByName和Dns.GetHostEntry
编译器提示Dns.GetHostByName已被否决,由Dns.GetHostEntry方法代替,但我输入127.0.0.1的时候,为何返回的结果不一样,Dns.GetHostByName的结果是我所需要的,那么,应该如何使用Dns.GetHostEntry方法得到我想要的结果?


------解决方案--------------------
引用:
Quote: 引用:

看清楚参数啊,一个是只传入string类型的hostname,
一个传入的是string 类型的计算机hostname或者IP地址,你传入的127.0.0.1已经被解析为IP地址作为参数了。

再说作为个程序员,请无视黄色的警告。

那为什么Dns.GetHostEntry得到的HostName是“125.252.224.90”,而Dns.GetHostByName得到的HostName是“127.0.0.1”...


127.0.0.1是本机保留地址
Dns.GetHostEntry 把127.0.0.1解析为IP地址返作为参数,返回的当然是你本机的HostName
Dns.GetHostByName把127.0.0.1解析为HostName作为参数,由于你的局域网内没有HostName为127.0.0.1的主机,所以返回的HostName默认为你输入的参数。