我所有的PS远程处理工具都依赖于我编写的函数,该函数运行以下代码来解析主机名。
此操作今天停止工作,现在导致此错误。 我环顾四周并尝试了GetHostEntry,但这似乎只返回IP地址。
$Computername = ([Net.Dns]::GetHostByAddress($IPAddress)).HostName
“使用” 1“参数调用” GetHostByAddress“的异常:”请求的 名称 有效,但未找到请求类型的数据” 在线:1字符:28 + [Net.Dns] :: GetHostByAddress <<<<($ IP).HostName + CategoryInfo:未指定:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException“
答案 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
方法已过时,并且像您尝试过的那样使用GetHostEntry
。 GetHostEntry
仅返回IP地址的事实表明PTR
记录已消失,或者从您查询的地方无法访问,或者您可能没有该要求的DNSPermission
打电话。