根据域名取IP地址,碰到了一个问题
这是我的方法:
C# code
public string GetIPByDomain(string domain)
{
try
{
IPHostEntry host = System.Net.Dns.GetHostEntry(domain.Trim());
return host.AddressList.GetValue(0).ToString();
}
catch
{
}
return "DNS出错";
然后我测试了一下:
C# code
GetIPByDomain("flsjflsjflsjflsjflsjfls59394573957oeworwuoruwlfjlsf.com")
这是一个明显不存在的域名,可是它还是给我返回了一个Ip:60.191.124.236
这是为什么呢?这个域名都不存在,怎么会有IP呢?这个IP是从何而来的?
------解决方案--------------------
你打开一个控制台,输入ping flsjflsjflsjflsjflsjfls59394573957oeworwuoruwlfjlsf.com
你会惊奇地发现,居然能解析到ip,还能ping通。这是垃圾电信搞的鬼。电信想到了一个生财的好方法,那就是劫持dns,当发现domain不存在的时候,就会给你一个指向它广告的ip。你也可以在浏览器里面输入一个错误的网站,也会进入它的导航站点。