如果我有一个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"但这不是我想要的。我不知道怎么做到这一点。任何想法都会有帮助。
发布于 2010-03-13 19:51:26
我想你是在说从主机名中获取顶级域名吧?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查找。这是一个C#中的实例。这些信息只是以纯文本的形式回来的;记住,它甚至不一定会告诉你拥有它的真实的人或公司,有时信息是私人的,你只能得到注册员(比如GoDaddy)。
此外,不同的whois服务器将提供不同的信息和区域;例如,您可以使用ARIN在美国域上获取信息,但对于欧洲域,则需要使用areas。老实说,我希望这不是你想要做的,因为你会发现这是一个相当大的焦油坑;没有简单的方法可以可靠地确定域名X是Y公司拥有的。
https://stackoverflow.com/questions/2439773
复制相似问题