gpt4 book ai didi

powershell - 使用 powershell 获取家庭网络上的设备名称及其 IP 地址

转载 作者:行者123 更新时间:2023-12-04 17:07:36 34 4
gpt4 key购买 nike

这个问题源于尝试管理我的家庭 wifi 网络。我一直在玩弄诸如 get-netipaddress、ipconfig 和 nslookup.exe 之类的命令。

下面的命令有点引导我到某个地方,但它没有我正在寻找的信息。

Get-NetIPAddress | Format-Table

我希望能够获得家庭网络上所有设备的列表。包括设备 IP 地址,以及该设备的某种名称。前面的命令给出了一个 ipaddress 但它看起来更像一个 mac 地址?任何帮助表示赞赏!

最佳答案

我为此将批处理工具转换为 Powershell 脚本。
它是 cmd 行工具 ping.exe、arp.exe 和 nslookup.exe 的包装器。

  • 为了获得良好的效果,应打开并连接所有设备。
  • 要将所有可能的 DeviceIP 放入计算机的 arp 缓存中,
    预先对假定的/24 子网中的所有 IP 执行 ping。
  • Arp.exe -a将返回 IP 和 MAC。
  • Nslookup.exe 用于查找从任何本地域后缀中剥离的名称。

  • 编辑 var $SubNet 以适应您的环境。
    ## Q:\Test\2017\01\21\SO_41785413.ps1
    $FileOut = ".\Computers.csv"
    ## Ping subnet
    $Subnet = "192.168.xyz."
    1..254|ForEach-Object{
    Start-Process -WindowStyle Hidden ping.exe -Argumentlist "-n 1 -l 0 -f -i 2 -w 1 -4 $SubNet$_"
    }
    $Computers =(arp.exe -a | Select-String "$SubNet.*dynam") -replace ' +',','|
    ConvertFrom-Csv -Header Computername,IPv4,MAC,x,Vendor|
    Select Computername,IPv4,MAC

    ForEach ($Computer in $Computers){
    nslookup $Computer.IPv4|Select-String -Pattern "^Name:\s+([^\.]+).*$"|
    ForEach-Object{
    $Computer.Computername = $_.Matches.Groups[1].Value
    }
    }
    $Computers
    $Computers | Export-Csv $FileOut -NotypeInformation
    #$Computers | Out-Gridview

    样本输出
    Computername     IPv4            MAC              
    ------------ ---- ---
    Zyxel-24G-Switch 192.168.xyz.1 fc-f5-28-fc-f5-28
    TMDat1-Plex 192.168.xyz.60 02-7c-2c-02-7c-2c
    HPn54L 192.168.xyz.91 c8-cb-b8-c8-cb-b8
    Medion-Tablett 192.168.xyz.114 08-d8-33-08-d8-33
    dLAN-LiveCam 192.168.xyz.115 bc-f2-af-bc-f2-af
    McMini 192.168.xyz.128 40-6c-8f-40-6c-8f
    HPojPro8500plus 192.168.xyz.144 d4-85-64-d4-85-64
    Amazon-Kindle2 192.168.xyz.152 10-ae-60-10-ae-60
    SG-S4-active 192.168.xyz.162 40-0e-85-40-0e-85
    TMDat1 192.168.xyz.167 28-92-4a-28-92-4a
    HP-G1610 192.168.xyz.176 10-60-4b-10-60-4b
    NetStream4Sat 192.168.xyz.191 00-0c-6c-00-0c-6c
    Netio230b 192.168.xyz.230 24-a4-2c-24-a4-2c
    fritz 192.168.xyz.250 bc-05-43-bc-05-43
    HomeMatic-CCU 192.168.xyz.254 00-1a-22-00-1a-22

    我自己的扩展版本附加了从 Mac 的前 6 位十六进制数字中提取的供应商,但需要从
    " http://standards-oui.ieee.org/oui.txt "

    关于powershell - 使用 powershell 获取家庭网络上的设备名称及其 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41785413/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com