228
228
如何将连接网络中的所有IP列出来,最好是通过终端?
使用Ubuntu 10.10,我想知道是否有一个命令行命令可以列出所有连接到网络的设备的IP?
例如,我想用这个命令来列出所有连接到我家网络的电脑。理想情况下,它需要是命令行,因为我将在C++中运行它。
有什么想法吗?
使用Ubuntu 10.10,我想知道是否有一个命令行命令可以列出所有连接到网络的设备的IP?
例如,我想用这个命令来列出所有连接到我家网络的电脑。理想情况下,它需要是命令行,因为我将在C++中运行它。
有什么想法吗?
查看arp-scan命令 - 你可能需要安装它,例如:
sudo apt-get install arp-scan
http://manpages.ubuntu.com/manpages/hardy/man1/arp-scan.1.html
更多细节:
sudo arp-scan --interface=eth0 --localnet
其中eth0是你的设备。您可以通过以下方式找到您的设备:
ifconfig
如果你的网络是192.168.0.0/24
,用以下代码制作一个可执行文件;将192.168.0
改为你的实际网络。
对于一个更紧凑的连接设备列表:
nmap -sL 192.168.0.* | grep \(1
说明。
详述Anders Larrson的回答 -
#!/bin/bash
function scan ()
{
for ip in $1.{1..254}; do
ping -c 1 -W 1 $ip &
done | sed -nE 's:^.* from ([0-9.]+).*time=(.*s)$: ():p'
}
if [$1]; then
for baseip; do
scan $baseip
done
else
scan 192.168.1
fi