1

我正在尝试获取当前用户的计算机名称。我可以使用 IP 地址获取 IP 地址,System.Net.Dns.GetHostEntry("ComputerName").Address.ToString()但是当我将 *ComputerName* 替换为IPAddress时,我收到以下错误。

没有这样的主机是已知的

我通过运行命令在 IIS7 中启用了反向 DNS: Cscript.exe adsutil.vbs set w3svc/EnableReverseDNS TRUE 在我服务器上的 C:\inetpub\AdminScripts目录中。

关于我做错了什么的任何想法?

更新

总体目的是,这将是一个帮助台应用程序,它对用户能够轻松提供他们的计算机名称以获得帮助很有用。

在本地一切正常,但一旦发布到服务器就不起作用。

4

3 回答 3

3

以下是如何在不同的机器上获取它。这也将为您提供 IPv4 版本。

class getIP
{
    public getIP()
    {

        IPAddress ip = Dns.GetHostEntry("whybla01").AddressList.Where(o => o.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).First();
        Console.WriteLine(ip);
        string name = Dns.GetHostEntry(ip).HostName.ToString();
        Console.WriteLine(name);
    }
}
于 2014-06-18T16:44:04.820 回答
3

你可以试试这个:

  string machineName = GetMachineNameFromIPAddress(yourIPAdress);

  private static string GetMachineNameFromIPAddress(string ipAdress)
        {
            string machineName = string.Empty;
            try
            {
                IPHostEntry hostEntry = Dns.GetHostEntry(ipAdress);

                machineName = hostEntry.HostName;
            }
            catch (Exception ex)
            {
                // Machine not found...
            }
            return machineName;
        }
于 2014-06-18T15:45:12.573 回答
0

感谢所有回答这篇文章的人。

实际上,代码不是问题。我正在尝试的代码或提出的建议没有任何问题。我发现服务器 DNS 条目设置不正确。

也许这会帮助别人。

于 2014-07-09T15:12:43.460 回答