【发布时间】:2020-04-15 17:55:37
【问题描述】:
我可以将包含原始数据的文件导出为 json、xml 或 csv。我选择了 JSON。
JSON 输出如下所示。
{
"entry":[{
"@name":"31.170.162.203",
"ip-netmask":
"31.170.162.203",
"description":
"test1"}
,
{
"@name":"37.193.217.222",
"ip-netmask":
"37.193.217.222",
"description":
"test2"}
,
{
"@name":"46.17.63.169",
"ip-netmask":
"46.17.63.169",
"description":
"test3"}
,
]
}
$input = Get-Content 'C:\Users\e\Desktop' -raw | ConvertFrom-Json
$iplist = $input.entry.'ip-netmask'
foreach ($ip in $iplist) #for each line in the file...
{
$hostnames = $null
try {
$hostnames = [System.Net.Dns]::GetHostByAddress("$ip").Hostname #...resolve the ip
}
catch [System.Management.Automation.MethodInvocationException] {
$hostnames = "Server IP cannot resolve."
}
catch {
$hostnames = "unknown error."
}
if ($hostnames -ne "Server IP cannot resolve.") {
$ip -replace $ip, $hostnames
} else {
Write-Host $ip
}
}
输出:
31.170.165.68
31.170.162.203
l37-193-217-222.novotelecom.ru
这告诉我它正在替换已解析的 IP,并保留所有未解析的原始 IP。这正是我想要的
我最终通过进一步的研究、试验和错误找出了如何解决这些问题。
【问题讨论】:
-
DNS 名称是否配置了反向查找记录?如果你做一个
ping -a <ip>或nslookup <ip>你会在那里找到名字吗? -
是的,他们中的一些人这样做
标签: json powershell dns ip fqdn