我尝试使用PowerShell作为网络扫描工具来ping本地子网上的每个地址。任何成功的ping将与目标设备的IP地址一起显示。Powershell:如何在不知道子网大小的情况下扫描局域网
我已经创建了两个命令将提取IP和前缀长度Get-NetIPAddress
:
$myIPAddress = $(Get-NetIPAddress | ? { ($_.AddressFamily -ilike "*IPv4*") -and ($_.IPAddress -notlike "127.0.0.1") -and ($_.IPAddress -notlike "169*") } | Select -ExpandProperty IPAddress)
$myPrefixLength = $(Get-NetIPAddress | ? { ($_.AddressFamily -ilike "*IPv4*") -and ($_.IPAddress -notlike "127.0.0.1") -and ($_.IPAddress -notlike "169*") } | Select -ExpandProperty PrefixLength)
我也通过制造工具,将主要在/ 24的空间ping通的每个地址开始吧:
$ping = new-object system.net.networkinformation.ping; 1..254 | % {$ping.send("192.168.43.$_", 1) | select address,status}
这也考虑到子网空间已知为/24
,并且IP地址以192.168.43
开头。
我试图实现的是变量,如1..254
和"192.168.43.$_"
可以根据机器的IP地址进行更改。
难道这就超出了我应该做的初学者?如果是这样,那么我可以尝试使用哪些其他网络工具来构建我的知识水平?
如果你有一个8位网络掩码的本地网络?这是16,777,216个地址进行扫描。这会花很长时间。您可以拥有任意大小的本地网络。甚至不要考虑IPv6,其中大多数网络将具有18,446,744,073,709,551,616个可能的地址,并且每秒1,000,000次扫描将超过584,542年。 –