2011-03-24 13:27:13 +0000 2011-03-24 13:27:13 +0000
228
228

どのようにして、接続されたネットワークのすべてのIPをリストアップすることができますか?

Ubuntu 10.10を使用して、私はネットワークに接続されたデバイスのすべてのIPをリストアップすることができますコマンドラインコマンドがあるかどうか疑問に思っていましたか?

私は、例えば、ホームネットワークに接続されているすべてのコンピュータをリストアップするためにこれを使用します。理想的には、私はC++からそれを実行するように、それはコマンドラインである必要があります。

何かアイデアはありますか?

回答 (8)

247
247
247
2011-03-24 13:37:18 +0000

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
115
115
115
2011-03-24 13:38:16 +0000

例: nmap -sn 10.10.10.0/24 最近連絡を取ろうとした相手だけがわかるようになります。

20
20
20
2011-03-24 13:33:14 +0000

Windowsでは"arp -a “になりますが、Linuxでは”arp -e “になると思います。

この情報はarpのマニュアルページにあります:

arp with no mode specifier will print the current content of the table.
-e : Use default Linux style output format (with fixed columns).
16
16
16
2013-05-17 18:45:14 +0000

ネットワークが192.168.0.0/24の場合は、以下のコードで実行ファイルを作成してください。

13
13
13
2013-09-08 18:56:24 +0000

nmap(sudo apt-get install nmap)をインストールしてみて、nmap 192.168.1.0/24をあなたのIPアドレスの最初の3つの部分(192.168.1を使って調べてみてください)でip addrと入力してみてください。

3
3
3
2016-10-30 20:33:12 +0000

tmuxはレポにはありませんが、arp-scanはプリインストールされているので、nmapを使用してnexusで以下のようになりました、ちょうどIPアドレスを表示します:

nmap -sn 192.168.1.1-254/24 | egrep "scan report" | awk '{print $5}'
1
1
1
2016-10-20 10:32:13 +0000

接続された装置のよりコンパクトなリストのため:

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つだけを表示することに注意してください。

0
0
0
2018-07-06 10:04:06 +0000

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