根据IP地址获取域名

时间:2010-03-13 19:47:05

标签: .net

如果我有IP地址,我需要获取域名(例如我输入209.85.129.103,程序应该知道这是Google地址)

据我所知,得到主机名:

IPHostEntry IpToDomainName = Dns.GetHostEntry("209.85.129.103");
string HostName = IpToDomainName.HostName; //it returns "fk-in-f103.1e100.net"

但这不是我想要的。 我不知道如何实现这一目标。任何想法都会有所帮助

1 个答案:

答案 0 :(得分:1)

我猜你在谈论从主机名获取顶级域名? TLD只是完整主机名中最后两个以点分隔的部分,因此函数看起来像这样:

public static string GetTopLevelDomain(string hostName)
{
    int lastDot = hostName.LastIndexOf('.');
    if (lastDot < 0)
        return hostName;
    int previousDot = hostName.LastIndexOf('.', lastDot - 1);
    return (previousDot >= 0) ? hostName.Substring(previousDot + 1) : hostName;
}

如果您实际上想确定拥有域名的人,则必须使用whois查找。这是一个whois example in C#。信息只是以纯文本形式返回;请记住,它甚至不一定会告诉你拥有它的真实的人或公司,有时候这些信息是私密的,而你所得到的只是注册商(如GoDaddy)。

此外,不同的whois服务器将提供不同的信息和不同的区域;例如,您可以使用ARIN获取有关美国域名的信息,但对于欧洲域名,您需要使用RIPE。老实说,我希望这不是你想要做的,因为你会发现它是一个相当焦油的坑;没有简单的方法可靠地确定 Domain X Company Y 所有。