在Powershell中使用nslookup获取主机名的IP地址

Ond*_*ebl 3 ip powershell nslookup hostname

我是Powershell脚本的新手,我需要编写一个脚本.我有一个服务器主机名列表,我需要获取这些服务器的IP地址并将结果写入文件.

主机名是Excel电子表格中的一列,但我可以将它们格式化为任何内容(csv,每行有一个主机名的简单txt文件等).

我想格式化输出的方式是服务器的主机名和每行的IP地址(因此,如果服务器有多个IP,则有多行).

到目前为止,我一直在使用每行主机名的简单文本文件,但是从PS的输出中我无法区分IP地址的服务器.

$servers = get-content "path_to_the_file" 
foreach ($server in $servers) {
[System.Net.Dns]::GetHostAddresses($server)
}
Run Code Online (Sandbox Code Playgroud)

所以我想知道从csv文件加载主机名并再次将主机名和相关的IP地址打印到另一个csv,但我不确定如何.

我正在调查通过在foreach中运行nslookup $ server来捕获所需信息(主机名和IP)的可能性.

有人可以帮我一把吗?

谢谢.

von*_*ryz 9

将主机名组合到地址可以在循环内完成.由于主机可以有多个IP地址,因此您也需要将其设置为accout.这将创建另一个循环.像这样,

$servers = get-content "path_to_the_file"
foreach ($server in $servers) {
  $addresses = [System.Net.Dns]::GetHostAddresses($server)
  foreach($a in $addresses) {
    "{0},{1}" -f $server, $a.IPAddressToString
  }
}
Run Code Online (Sandbox Code Playgroud)