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

标签 powershell ip hostname nslookup

我是 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)
}

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

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

有人可以帮我一把吗?

谢谢你。

最佳答案

将主机名与地址组合可以在循环内完成。由于主机可以有多个 IP 地址,因此您也需要考虑到这一点。这将创建另一个循环。像这样,

$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
  }
}

关于powershell - 在 Powershell 中使用 nslookup 获取主机名的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18102227/

相关文章:

php - 从 .htaccess 访问 MYSQL

ruby-on-rails - 从私有(private) NIC 访问时,Rails 显示 IP 为 127.0.0.1,但 Nginx 显示正确的 IP。公共(public) IP 可以正常转发

networking - 在 VMWare Fusion 中使用主机名访问客户操作系统

python - 如何用 Python 替换 debian 上/etc/hosts 中的主机名

c# - 使用 Microsoft.SqlServer.SMO 创建一个 Alter Stored Procedure sql 脚本?

html - 使用 powershell 从 HTML 网站抓取图像链接

php - 如果我的服务器有多个 IP 地址,我如何使用每个 IP 地址运行脚本?

powershell - 使用 PowerShell 将 SSL 证书绑定(bind)到端口

powershell - 为什么 Powershell 作业这么慢?

java - 跨平台收集当前服务器信息