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
Nmapを使用してください。例:nmap -sn 10.10.10.0/24
arpキャッシュはあなたが最近連絡を取ろうとしているものだけを教えてくれます。
Windowsでは、これは "arp -a
"になります。Linuxのそれと同等のものが "arp -e
"になると思います。
この情報はarpのmanページから見つけることができます。
arp with no mode specifier will print the current content of the table.
-e : Use default Linux style output format (with fixed columns).
ネットワークが192.168.0.0/24
の場合は、次のコードで実行可能ファイルを作成します。 192.168.0
を実際のネットワークに変更してください。
#!/bin/bash
for ip in 192.168.0.{1..254}; do
ping -c 1 -W 1 $ip | grep "64 bytes" &
done
nmap
(Sudo apt-get install nmap
)をインストールし、IPアドレスの最初の3つの部分をnmap 192.168.1.0/24
に置き換えて192.168.1
と入力してください(ip addr
の使用方法をご覧ください)。
ping 192.168.1.255
(やはり192.168.1
を代用します)を実行すると、(私の経験では)少し正確さに欠けるネットワークのマップを得ることができます。shouldping
をすべてのマシンに発行します。ネットワーク、しかし、私の経験では、常に正しく機能するわけではありません。
arp-scan
はリポジトリには含まれていませんが、tmux
はIPアドレスのみを表示するので、nmap
を使用してネクサス上で次のことを思いつきました:
nmap -sn 192.168.1.1-254/24 | egrep "scan report" | awk '{print $5}'
接続されているデバイスのよりコンパクトなリストについては、
nmap -sL 192.168.0.* | grep \(1
説明。
nmap -sL 192.168.0.*
は、サブネットワーク内のすべてのIPをリストし、それらに名前を付けたものをマークします。
Nmap scan report for 192.168.0.0
Nmap scan report for Dlink-Router.Dlink (192.168.0.1)
Nmap scan report for 192.168.0.2
...
Nmap scan report for Android-473e80f183648322.Dlink (192.168.0.53)
...
Nmap scan report for 192.168.0.255
興味深いレコードはすべて括弧(
と数字1
で始まるので、| grep \(1
でそれをフィルタリングします(括弧をエスケープするにはバックスラッシュが必要です)。
気まぐれ
2つのデバイスが同じ名前を持っている場合、nmap
はルータに最後に接続されたものだけを表示します
Anders Larssonの回答を詳しく説明する -
#!/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)$:\1 (\2):p'
}
if [ $1 ]; then
for baseip; do
scan $baseip
done
else
scan 192.168.1
fi