質問: linuxでlan上のコンピュータのリストを表示する 私はweb開発者であり、セキュリティについてよりよく対処しようとしています。私のネットブックがあるのと同じlan上にあるすべてのコンピュータを一覧表示する方法を見つけようとしています(linux/debianベースのディストリビューション)。私は "arp -n"を試しましたが、私のiphoneは私のネットブックと同じwi-fiルーターに接続されているので、それが完全なリストであるとは思いません。すべて同じゲートウェイを共有しているマシンの完全なリストを取得するためのより良い方法はありますか?
回答: 既存の答えが十分に満足できるものではなかったので、試してみることにしました。結局、faqはリンクに コンテキストを提供することを提案します 。少し混乱して使用するならばnmapは素晴らしいです。これは私がローカルネットワークデバイスを発見するために実行しているもので、ほとんどコピー&ペースト可能です。 nmap -sp(またはnmap -sn)は ping でスキャンします。 nmap -slやnmap -pnのように、 'host discovery'には他のオプションがあります。方法1.ehtesh@x200arch:~$ # my wireless interface is listed as wlp3s0. yours could be wlan0 or eth1. ehtesh@x200arch:~$ ip addr show wlp3s0 | grep "inet " inet 172.18.72.53/22 brd 172.18.75.255 scope global wlp3s0 ehtesh@x200arch:~$ arp -a ? (172.18.72.1) at c8:4c:75:76:bd:74 [ether] on wlp3s0 ehtesh@x200arch:~$ nmap -sp 172.18.72.0/24 starting nmap 6.41svn ( http://nmap.org ) at 2013-12-17 20:08 est nmap scan report for 172.18.72.2 host is up (0.017s latency). <... 15 ip addresses snipped ...> nmap scan report for 172.18.72.253 host is up (0.13s latency). nmap done: 256 ip addresses (17 hosts up) scanned in 5.74 seconds ehtesh@x200arch:~$ arp -a | sort -n -k 1,1 ? (172.18.72.126) at ec:35:86:4a:37:d2 [ether] on wlp3s0 ? (172.18.72.148) at 10:9a:dd:b8:79:71 [ether] on wlp3s0 ? (172.18.72.178) at 9c:20:7b:7b:08:ba [ether] on wlp3s0 ? (172.18.72.1) at c8:4c:75:76:bd:74 [ether] on wlp3s0 ? (172.18.72.253) at b8:78:2e:19:05:0b [ether] on wlp3s0 ? (172.18.72.2) at 00:14:1c:da:e1:c2 [ether] on wlp3s0 ? (172.18.72.40) at d8:c7:c8:ca:f9:88 [ether] on wlp3s0 ? (172.18.72.43) at d8:c7:c8:ce:0f:60 [ether] on wlp3s0 ? (172.18.72.44) at d8:c7:c8:ce:0f:68 [ether] on wlp3s0 ? (172.18.72.45) at 6c:f3:7f:c6:71:16 [ether] on wlp3s0 ? (172.18.72.46) at 6c:f3:7f:c4:4c:b3 [ether] on wlp3s0 ? (172.18.72.47) at d8:c7:c8:ca:f9:88 [ether] on wlp3s0 ? (172.18.72.48) at 24:de:c6:c6:b6:78 [ether] on wlp3s0 ? (172.18.72.49) at 24:de:c6:c6:b6:e6 [ether] on wlp3s0 ? (172.18.72.51) at 00:9c:02:d0:4c:4e [ether] on wlp3s0 ? (172.18.72.54) at 00:23:76:99:99:bf [ether] on wlp3s0 ? (172.18.72.62) at 8c:70:5a:0d:06:18 [ether] on wlp3s0 ? (172.18.72.63) at 7c:e9:d3:51:86:55 [ether] on wlp3s0 ? (172.18.72.64) at a0:88:b4:47:eb:c8 [ether] on wlp3s0 方法2私はこれがうまくいくことを知っていますが、これが正しい方法であるかどうかはわかりません。ehtesh@x200arch:~$ #ifconfig | grep broadcast ehtesh@x200arch:~$ ip address show wlp3s0 | grep brd link/ether 00:1e:65:bf:1b:42 brd ff:ff:ff:ff:ff:ff inet 172.18.72.53/22 brd 172.18.75.255 scope global wlp3s0 ehtesh@x200arch:~$ ping -b -c 3 -i 20 172.18.75.255 <... similar output to above ...> もっと効果的な方法があるかどうか私は知りたいです。それまでは、これにこだわっています。