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
wlan0
代わりにを使用しますeth0
。
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).
arp -a
ますが、(すべての)ホストを代替(BSD)スタイルで表示します。Simpyの実行arp
はarp -e
、デフォルトであるbeacuseの実行と同じです。
ネットワークがの場合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
ping -b -c 1 192.168.0.255
「0送受信1つのパケット、100%のパケット損失、時間は0ms」をもたらす
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
)を実行すると、ネットワークのマップの精度がやや低下します(経験上)。ただし、経験上、常に正しく機能するとは限りません。ping
接続されたデバイスのよりコンパクトなリスト:
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
それがルータに接続して、1つしか表示されません最後