【发布时间】:2014-08-08 23:51:13
【问题描述】:
我正在尝试获取当前用户的计算机名称。我可以使用 System.Net.Dns.GetHostEntry("ComputerName").Address.ToString() 获取 IP 地址,但是当我将 *ComputerName* 替换为 IPAddress 时,我收到以下错误。
不知道这样的主机
我通过运行以下命令在 IIS7 中启用了反向 DNS: Cscript.exe adsutil.vbs 设置 w3svc/EnableReverseDNS TRUE 在我服务器上的 C:\inetpub\AdminScripts 目录中。
关于我做错了什么有什么想法吗?
更新
总体目的是,这将是一个帮助台应用程序,它有助于用户轻松提供他们的计算机名称以获得帮助。
在本地一切正常,但一旦发布到服务器就无法正常工作。
【问题讨论】:
-
该代码在本地运行。它不会告诉你远程用户的 IP;它会告诉你局域网上一台计算机的 IP。
-
你试过 Dns.GetHostByName 吗? msdn.microsoft.com/en-us/library/…... 从该文档中,“GetHostByName 方法查询 Internet DNS 服务器以获取主机信息。如果您将空字符串作为主机名传递,此方法将检索本地计算机的标准主机名。”所以看起来如果你给它一个名字,它会相应地查找它。
-
@RobertHarvey 现在,我将客户端的 IP 地址和主机/计算机名称硬编码到
Dns.GetHostEntry(hostNameOrAddress)中,以查看是否可以获得所需的结果。名称工作正常,但 IP 给出错误。 -
您使用的是 64 位操作系统吗?如果您从 64 位机器获取 IP 地址,则需要循环并获取 IPv4 地址。第一个返回的地址可能是 IPv6。
-
@alykins 目标是使用 IP 地址获取主机/计算机名称。 GetHostByName 要求主机名已知。
标签: c# asp.net-mvc dns ip-address computer-name