0

现在我需要通过他的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()但我对这个问题的解决方案不满意。

是否允许以这种方式使用此功能?还是我必须担心将来会出现一些网络问题?有没有更好(更安全)的方法可以在没有域的情况下访问主机名?

我正在寻找一种更安全的网络解决方案,而不是另一种处理字符串的方法。正如评论中提到的,我有点担心,并非每个操作系统都以以下格式返回主机名:[Hostname].[Domainname].

4

2 回答 2

0

如果 pc 未加入域,您将收到错误消息。由于(dot)没有找到,所以使用split函数是最合理的。我已经检查过了。

于 2016-08-03T08:26:35.553 回答
-2

尝试这个

public string GetDNSNameFromReverseLookUp(string ip)
{
    IPAddress hostIPAddress = IPAddress.Parse(ip);
    IPHostEntry hostInfo = Dns.GetHostEntry(hostIPAddress);
    return hostInfo.HostName.Split('.')[0];
}
于 2016-08-03T08:10:35.987 回答