如果我有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"
但这不是我想要的。 我不知道如何实现这一目标。任何想法都会有所帮助
答案 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 所有。