【问题标题】:GetHostByAddress valid anymore?GetHostByAddress 是否有效?
【发布时间】:2019-10-23 10:15:25
【问题描述】:

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

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

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

“使用“1”参数调用“GetHostByAddress”的异常:“请求的 姓名 有效,但未找到请求类型的数据” 在行:1 字符:28 + [Net.Dns]::GetHostByAddress

【问题讨论】:

    标签: .net dns powershell-2.0 hostname


    【解决方案1】:

    我要做的第一件事是独立确认感兴趣的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

    【讨论】:

      猜你喜欢
      • 2017-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 2013-06-24
      • 2015-04-11
      相关资源
      最近更新 更多