例如:
服务器:server1.contoso.com
服务器上存在的 IP:最初静态配置为 10.10.20.100,它有两个额外的 IP 添加到同一个 NIC,10.10.20.20 和 10.10.20.102。server1.contoso.com
的记录指向 10.10.20.100
从另一台机器 ping server1.contoso.com 时返回正确的 IP 10.10.20.100。Tracert 显示通过正确的通道。
在 server1.contoso.com 上 ping server1.contoso.com 时返回 10.10.20.20。Tracert 显示它不会转到 DNS,而是在服务器上解析为数值最低的 IP。
有没有什么办法可以解决这种情况?我正在尝试编写一个脚本,该脚本将在服务器上运行并返回在 NIC 属性上配置为静态 IP 的 IP。
使用 WMI 类,我能够看到该 NIC 上的所有 IP,因此到目前为止,我一直假设数组中的第一个项是已配置的,但理想情况下,我宁愿直接联系 DNS 来获取 IP。
有什么建议么?
答案1
听起来您有两个相互冲突的期望。一方面,您似乎希望它进行 DNS 查询。另一方面,您希望显示“在 NIC 属性上配置为静态 IP 的 P”。从这两项中可能会得到相互冲突的信息。
由于缺乏更多信息,我只能向您介绍如何使用 DNS 记录。具体方法是明确询问 DNS 服务器:
PS> [System.Net.Dns]::GetHostAddresses("server1.contoso.com")
如果在构建脚本时不知道完全限定的主机名,请使用以下命令代替服务器名称:
"$env:computername.$env:userdnsdomain"