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

如何让PowerShell脚本检测IP连通状态时同步显示对应主机名

解决方案

我们可以通过DNS反向解析功能获取IP对应的主机名,同时对解析失败的场景做异常捕获避免脚本中断,修改后的完整代码如下:

# 读取IP列表文件
$names = Get-Content "C:\Users\jason.darby\Desktop\useful scripts\ip.txt"
# 初始化输出结果变量,避免历史值干扰
$Output = ""

foreach ($name in $names) {
    # 反向解析IP对应的主机名,解析失败显示兜底提示
    $hostName = try {
        [System.Net.Dns]::GetHostEntry($name).HostName
    }
    catch {
        "*无有效PTR记录*"
    }

    # 连通性检测逻辑
    if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue) {
        $result = "$name ($hostName) is UP"
        Write-Host $result -ForegroundColor Green
        $Output += $result + "`n"
    }
    else {
        $result = "$name ($hostName) is DOWN"
        Write-Host $result -ForegroundColor Red
        $Output += $result + "`n"
    }
}

Start-Sleep -s 10 

改动说明

  • 新增DNS反向解析逻辑,自动查询IP对应的主机名,无对应解析记录时显示无有效PTR记录的兜底提示
  • 输出内容同步展示IP、主机名、连通状态三个信息,满足需求
  • 保留了原脚本的彩色控制台输出、结果拼接、结束前等待10秒的原有逻辑
  • 新增解析异常捕获逻辑,避免部分IP解析失败导致脚本运行中断

可选拓展

如果需要把检测结果持久化存储,可在脚本末尾添加如下代码,将结果导出为本地文本文件:

$Output | Out-File "C:\Users\jason.darby\Desktop\ip检测结果.txt" -Encoding UTF8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:18:03