日期:2014-05-17  浏览次数:20373 次

根据域名取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。你也可以在浏览器里面输入一个错误的网站,也会进入它的导航站点。