我正在尝试编写一个脚本,该脚本将从 IP 地址的 .txt 文件中获取输入。执行反向 DNS 查找以获取 IP 地址的主机名,然后将该数据导出到 .csv 文件中。
这是我目前所得到的。
# getting the IP's from the file
$IPADDR = Get-Content "C:\Users\douglasfrancis\Desktop\IP_Test.txt"
ForEach ($IPADDR in $IPADDR)
{
[System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR - MemberType NoteProperty -PassThru | select IP, HostName | sort -property Hostname | export- csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv"
}
现在,创建的 CSV 文件将包含我指定的列标题和列表中的最后一个 IP 地址及其主机名。所以不知何故它放弃了其他所有内容。
如果我运行它并且将 export-csv 注释掉,那么所有 IP 都会显示在控制台中,但不会按主机名排序。
我以前用过同样的基本管道,没有出现任何问题,所以我有点不知道这里发生了什么。任何帮助都非常感谢。
谢谢,
答案1
休息了一下又回来了。意识到我错过了什么,现在一切正常。
$SortIP =@()
ForEach ($IPADDR in $IPADDR)
{
$SortIP += [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName
}
$SortIP | sort -property Hostname | export-csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv" -NoTypeInformation
基本上添加了“$SortIP”变量并使用“+= [System.Net.DNS]”而不是我之前使用的“=[System.Net.DNS]”,它完全按照我的预期执行。
答案2
这对我来说可能有很大帮助。我一直在尝试添加到脚本中,以便它记录没有 DNS 反向查找的条目。在我运行的文件中,我在 2700 个列表中有 9 个 IP 没有反向查找。
到目前为止,我只能记录成功。我尝试包含的 9 个文件也出现了如下错误:
ERROR: Exception calling "GetHostByAddress" with "1" argument(s): "The requested name is valid, but no data of the requested type was found"
ERROR: At C:\SANDBOX\Reverse DNS Pipe fails CSV with SORT.ps1:21 char:48
ERROR: + $SortIP += [System.Net.DNS]::GetHostbyAddress <<<< ($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName
ERROR: + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
ERROR: + FullyQualifiedErrorId : DotNetMethodException
ERROR:
这是我正在运行的脚本:
# getting the IP's from the file
$IPADDR = Get-Content "C:\SANDBOX\inputips.txt"
$SortIP =@()
foreach ($IPADDR in $IPADDR)
{
$SortIP += [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName
}
$SortIP | sort -property Hostname | export-csv "C:\SANDBOX\ReverseLookupSORT.csv" -NoTypeInformation