导入IP地址列表,解析其主机名,将IP和主机名导出到电子表格中



在此处完成powershell noob。我正试图做以下事情:

  1. 从文本文件导入IP地址列表
  2. 获取每个IP地址的主机名。如果无法,请提供失败原因
  3. 在CSV中逐行导出IP地址和主机名(或错误(

我试图使用以下脚本,但我不知道什么是IP地址,因为有一些错误:

get-content .dnsip.txt | ForEach-Object {([system.net.dns]::GetHostByAddress($_)).hostname

有人能帮我写一个能做到这一点的剧本吗?

谢谢!

您可以执行以下操作:

Get-Content .dnsip.txt | ForEach-Object {
$obj = "" | Select-Object IPAddress,Hostname
try { 
$obj.Hostname = ([system.net.dns]::GetHostByAddress($_)).hostname
} catch { 
$obj.Hostname = 'Unknown Host'
} 
$obj.IPAddress = $_
$obj
} | Export-Csv -Path Output.csv -NoType

解释:

在每次迭代过程中,都会创建一个新对象$obj,其中两个属性IPAddressHostname设置为空字符串。try {}块用于尝试使用您的方法检索Hostname值。如果成功,Hostname将被分配该命令返回的值。如果抛出异常,它将被catch {}块捕获。在侧catch {}中,Hostname属性被赋予值Unknown Host。然后为IPAddress分配从您的Get-Content处理的当前项目($_(。

所有自定义对象都通过Export-Csv导出到Output.csv-NoType开关可防止在CSV文件的顶部打印数据类型信息。

最新更新