GetHostByAddress有效吗?

时间:2019-06-07 23:30:54

标签: .net dns powershell-2.0 hostname

我所有的PS远程处理工具都依赖于我编写的函数,该函数运行以下代码来解析主机名。

此操作今天停止工作,现在导致此错误。 我环顾四周并尝试了GetHostEntry,但这似乎只返回IP地址。

$Computername = ([Net.Dns]::GetHostByAddress($IPAddress)).HostName

“使用” 1“参数调用” GetHostByAddress“的异常:”请求的     名称     有效,但未找到请求类型的数据”     在线:1字符:28     + [Net.Dns] :: GetHostByAddress <<<<($ IP).HostName     + CategoryInfo:未指定:(:) [],MethodInvocationException     + FullyQualifiedErrorId:DotNetMethodException“

1 个答案:

答案 0 :(得分:3)

我要做的第一件事是独立确认感兴趣的PTR记录仍在DNS中。在Windows上,我将使用nslookup。例如,要查找IP 10.1.2.3的主机信息:

nslookup
> set type=ptr
> 3.2.1.10.in-addr.arpa.
Server:     127.0.0.1
Address:    127.0.0.1#53

** server can't find 1.2.3.10.in-addr.arpa: NXDOMAIN
>

如果您像上面一样返回一个NXDOMAIN,那么您使用什么呼叫都没有关系……数据就不存在了。

如果您确实获得了答案,那么也许实际上是API调用。此页面https://docs.microsoft.com/en-us/dotnet/api/system.net.dns.gethostbyaddress?view=netframework-4.8确实指定了GetHostByAddress方法已过时,并且像您尝试过的那样使用GetHostEntryGetHostEntry仅返回IP地址的事实表明PTR记录已消失,或者从您查询的地方无法访问,或者您可能没有该要求的DNSPermission打电话。