You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为现有Ping脚本添加NSLookup功能以输出IP地址

为Ping脚本添加NSLookup功能

我有一个可正常运行的Ping脚本,希望为其添加NSLookup功能:已知打印机主机名时,若能查询到对应IP地址,就将该IP输出至单独列中。以下是我尝试的两段代码:

第一段示例代码

Get-Content "C:\Users\Username\Desktop\New folder\hnames.txt" | ForEach-Object { # 替换为你的用户名及主机名文件路径
  if(Test-Connection $_ -Count 1 -ErrorAction SilentlyContinue){
    $status = 'Alive'
  }
  else {
    $status = 'Dead'
  }

$dns = Resolve-DnsName $_ -DnsOnly -ErrorAction SilentlyContinue

  # 输出包含两个独立属性的对象
  [pscustomobject]@{
    Status = $status
    Target = $_
    IPAddress = $dns.IPAddress -join ', '
  }
} | Export-Csv 'C:\Users\Username\Desktop\New folder\output.csv' -NoTypeInformation # 替换为你的输出文件路径及文件名

第二段示例代码

Get-Content "C:\Users\Username\Desktop\New folder\hnames.txt" | ForEach-Object { # 替换为你的用户名及主机名文件路径
  if(Test-Connection $_ -Count 1 -ErrorAction SilentlyContinue){
    $status = 'Alive'
  }
  else {
    $status = 'Dead'
  }

  # 输出包含两个独立属性的对象
  [pscustomobject]@{
    Status = $status
    Target = $_
    IPAddress = $success.Address.IPAddressToString
  }
} | Export-Csv 'C:\Users\Username\Desktop\New folder\output.csv' -NoTypeInformation # 替换为你的输出文件路径及文件名

代码问题分析与优化方案

  • 第一段代码逻辑可行,但DNS解析失败时IPAddress列会显示为空,可添加友好提示;同时代码结构可进一步规整。
  • 第二段代码存在明显错误:变量$success未定义,会导致IPAddress列始终为空或触发报错,属于无效写法。

优化后的完整代码

Get-Content "C:\Users\Username\Desktop\New folder\hnames.txt" | ForEach-Object {
    $hostname = $_
    # 检测主机连通状态
    $status = Test-Connection $hostname -Count 1 -ErrorAction SilentlyContinue ? 'Alive' : 'Dead'
    # 解析DNS获取IP地址
    $dnsResult = Resolve-DnsName $hostname -DnsOnly -ErrorAction SilentlyContinue
    $ipAddress = $dnsResult.IPAddress ? ($dnsResult.IPAddress -join ', ') : '未解析到IP'
    # 输出结果对象
    [pscustomobject]@{
        Status    = $status
        Target    = $hostname
        IPAddress = $ipAddress
    }
} | Export-Csv 'C:\Users\Username\Desktop\New folder\output.csv' -NoTypeInformation

优化点说明:

  • 用变量存储当前主机名,提升代码可读性
  • 简化状态赋值与IP解析判断逻辑,让代码更简洁
  • 增加DNS解析失败时的友好提示文本
  • 规整代码结构,便于后续维护

内容的提问来源于stack exchange,提问作者EEVolutionX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:50:29