どのようにして、接続されたネットワークのすべての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の場合は、以下のコードで実行ファイルを作成してください。
接続された装置のよりコンパクトなリストのため:
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でフィルタリングします(括弧をエスケープするためにバックスラッシュが必要です) 
Quirk 
2つのデバイスが同じ名前を持っている場合、nmapは、ルータlastに接続されていた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