是否允许将IPHostEntry.HostName作为计算机名称的子字符串

本文关键字:计算机名 字符串 IPHostEntry HostName 是否 | 更新日期: 2023-09-27 18:00:09

现在我需要通过他的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]的格式返回主机名

是否允许将IPHostEntry.HostName作为计算机名称的子字符串

如果pc未加入域,则会出现错误。由于没有找到(点),所以使用分割函数是最合理的。我已经查过了。

试试这个

public string GetDNSNameFromReverseLookUp(string ip)
{
    IPAddress hostIPAddress = IPAddress.Parse(ip);
    IPHostEntry hostInfo = Dns.GetHostEntry(hostIPAddress);
    return hostInfo.HostName.Split('.')[0];
}