【发布时间】:2016-12-08 20:01:55
【问题描述】:
现在我需要通过他的 IP 地址找到一些 PC 的主机名,我用这个函数解决了这个问题:
/// <summary>
/// Returns the DNS Name of IP Address without the Domain.
/// </summary>
public string GetDNSNameFromReverseLookUp(string ip)
{
IPAddress hostIPAddress = IPAddress.Parse(ip);
IPHostEntry hostInfo = Dns.GetHostEntry(hostIPAddress);
return hostInfo.HostName.Substring(0, hostInfo.HostName.IndexOf('.'));
}
但我对substring() 解决问题的方法不满意。
可以这样使用这个功能吗?还是我必须担心将来会出现一些网络问题?有没有更好(更安全)的方法来获取没有域的主机名?
我正在寻找一种更安全的网络解决方案,而不是另一种处理字符串的方法。正如我在 cmets 中提到的,我有点担心,并非每个操作系统都以以下格式返回主机名:[Hostname].[Domainname]。
【问题讨论】:
-
另一种方法是在 dot(.) 上拆分字符串,但这只会和这个一样安全 :)
-
为什么你认为这种方法不安全?
-
我有点担心,不是每个操作系统都以以下格式返回主机名:
[Hostname].[Domainname]。
标签: c# dns hostname reverse-dns