powershell - 使用 Powershell 从 CNAME 记录中解析 IP 地址

标签 powershell dns

我的服务器最近从简单的 www.example.com A 10.10.10.10 类型结构转变为使用 CNAME 抽象....

 www.example.com   CNAME   www1.example.com
 www1.example.com      A   10.10.10.10

以前我可以使用以下方法进行 DNS 查找以获取 A 记录:

 $myHostIp = Resolve-DnsName "www.example.com" A -DnsOnly | Select-Object -first 1
 $myHostIp = $myHostIp.IP4Address

(这不适用于 CNAME 记录)。

如何获取与 CNAME 记录关联的(第一个)IP 地址?

我试过:

 $myHostIp = Resolve-DnsName "www.example.com" A -DnsOnly | Select-Object -first 1 -Property IP4Address

但我只是得到空值。

最佳答案

当您使用 Resolve-DnsName -Type A 查询 CNAME 时,您会得到两个响应。第一个是 CNAME 响应,第二个是 A。

你可以清楚地看到发生了什么:

PS> Resolve-DnsName -Name 'www.google.com' -Type A -DnsOnly | Format-List -Property *


QueryType    : CNAME
Server       : forcesafesearch.google.com
NameHost     : forcesafesearch.google.com
Name         : www.google.com
Type         : CNAME
CharacterSet : Unicode
Section      : Answer
DataLength   : 8
TTL          : 228

Address      : 216.239.38.120
IPAddress    : 216.239.38.120
QueryType    : A
IP4Address   : 216.239.38.120
Name         : forcesafesearch.google.com
Type         : A
CharacterSet : Unicode
Section      : Answer
DataLength   : 4
TTL          : 228

您得到的是空值,因为第一个对象不包含名为“IP4Address”的属性,并且不存在的属性值为空值。

尝试:

$myHostIp = Resolve-DnsName -Name 'www.example.com' -Type A -DnsOnly | 
    Where-Object QueryType -eq 'A' |
    Select-Object -First 1 -ExpandProperty IP4Address

关于powershell - 使用 Powershell 从 CNAME 记录中解析 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49653819/

相关文章:

Powershell:不同环境的两个参数定义?

mysql加载数据csv utf8字符未读取,powershell csv导出

amazon-web-services - 将 Namecheap 区域文件导入 AWS Route53

Oracle SQL Developer 上的 Windows 域登录

grails - 在Grails中的投影

powershell - 自动化帐户链接到工作区 Azure

database - 我想在 red hat linux 服务器上执行一个 .ps1 powershell 脚本

powershell - 如何获取Windows通用帐户列表的AD属性?

python - 如何在 python 网络服务器中禁用反向 dns 查找?

ubuntu - EC2 Ubuntu : unable to access site from browser but able to access from EC2 ubuntu terminal