回答:
試してみてくださいarp -a
お使いのコンピュータの現在のARPテーブルを参照してください。コンピューターが対話したIPアドレスのみが表示されます。次のような出力(ネットワーク上のMACアドレスを隠すために少し隠されています):
$ arp -a
? (10.1.168.1) at xx:xx:9e:82:ab:f6 on en1 ifscope [ethernet]
? (10.1.168.16) at xx:xx:29:d3:17:8 on en1 ifscope [ethernet]
? (10.1.168.115) at xx:xx:2:4f:76:14 on en1 ifscope [ethernet]
? (10.1.168.131) at xx:xx:6b:d0:36:a5 on en1 ifscope [ethernet]
? (10.1.168.134) at (incomplete) on en1 ifscope [ethernet]
? (10.1.168.137) at xx:xx:65:46:cd:b8 on en1 ifscope [ethernet]
? (10.1.168.255) at ff:ff:ff:ff:ff:ff on en1 ifscope [ethernet]
? (192.168.4.255) at ff:ff:ff:ff:ff:ff on vmnet8 ifscope [ethernet]
? (192.168.110.255) at (incomplete) on vmnet1 ifscope [ethernet]
どのコンピューターがどれであるかについての詳細情報がない場合は、MACアドレスルックアップを介してネットワークカードのメーカーを特定することで、もう少し情報を得ることができます。
arp -a
コンピュータが操作したIPアドレスのみを表示します」とはどういう意味ですか。?最初にブロードキャスト(192.168.110.255)をpingし、すべてのデバイスから応答を取得してから、arpを使用して完全なリストを取得する必要がありますか?
他のすべてのマシンが、アクセスできるマシンと同じブロードキャストドメインにあると仮定すると、多くの場合、ブロードキャストアドレスへのpingで十分です。スリープ状態のマシン、pingに応答しないように構成されたマシン、pingには応答するがpingをブロードキャストしないマシンは検出されません。
% ifconfig -a | grep broadcast
inet 192.168.1.241 netmask 0xffffff00 broadcast 192.168.1.255
% ping -i 5 -c 2 192.168.1.255
PING 192.168.1.255 (192.168.1.255): 56 data bytes
64 bytes from 192.168.1.241: icmp_seq=0 ttl=64 time=0.393 ms
64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=2.511 ms (DUP!)
64 bytes from 192.168.1.65: icmp_seq=0 ttl=64 time=5.810 ms (DUP!)
64 bytes from 192.168.1.255: icmp_seq=0 ttl=64 time=7.886 ms (DUP!)
64 bytes from 192.168.1.241: icmp_seq=1 ttl=64 time=0.312 ms
--- 192.168.1.255 ping statistics ---
2 packets transmitted, 2 packets received, +3 duplicates, 0% packet loss
round-trip min/avg/max/stddev = 0.312/3.382/7.886/3.010 ms
最初と最後の応答は、ほとんど常にローカルマシンです。(DUP!)
(この例でもひどく有用ではありませんブロードキャストアドレス自体で応答するいくつかのマシンを、示しが)応答は、他のマシンからです。
また、すべて1のブロードキャストアドレスを試すこともできます。
% ping -i 5 -c 2 255.255.255.255
PING 255.255.255.255 (255.255.255.255): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.392 ms
64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=3.053 ms (DUP!)
64 bytes from 192.168.1.65: icmp_seq=0 ttl=64 time=8.685 ms (DUP!)
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.319 ms
--- 255.255.255.255 ping statistics ---
2 packets transmitted, 2 packets received, +2 duplicates, 0% packet loss
round-trip min/avg/max/stddev = 0.319/3.112/8.685/3.401 ms
この例は、あまり粗くないことを示しています。すべての(DUP!)
sは他のマシンであり、ローカルマシンは127.0.0.1として簡単に識別されます。
Macにはすべてホスト名があるため、IPアドレスを知る必要はありません。代わりに、ホスト名のみを使用します。
ホスト名は、コンピューターに付けた名前に基づいています。そのため、コンピューターの名前が「Jon's Mac」の場合、使用するホスト名は「jons-mac.local」のようになります。
$ ssh jons-mac.local
コンピューターのホスト名がまだわからない場合は、そのコンピューターの共有設定でコンピューターのホスト名を見つけるか、dns-sdコマンドを使用してネットワーク上の他のコンピューターのホスト名を見つけることができます。このコマンドは、Bonjourを使用してネットワークサービスを参照できます。実際にいくつかのネットワークサービスを広告しているコンピューターのみを見つけることができます(一般的に気になるのはこれだけです)。
sshを提供するコンピューターに接続する場合は、次を使用して使用可能なコンピューターを見つけることができます。
dns-sd -B _ssh._tcp .
一般に、サービス名を使用して特定のサービスを提供するホストを検索できます:http : //www.dns-sd.org/ServiceTypes.html
Bonjourプロトコルは、特定のサービスだけでなく、すべてのサービスを参照する機能も提供します。これを行うには、特別なサービスを参照します_services._dns-sd._udp
dns-sd -B _services._dns-sd._udp .
質問は、コマンドラインからネットワーク上の他のコンピューターを見つけることについて尋ねていますが、GUIでdns-sdアドバタイズされたサービスを参照することもできます。たとえば、Terminal.app> New Remote Connection ...は、アドバタイズされたssh、sftp、ftp、およびtelnetサービスを表示するウィンドウを表示します。
dns-sd -B _ssh._tcp .
実行にかかる時間はどれくらいですか?
dns-sd
LANでBonjourクエリを実行するために使用してみてください。
dns-sd -B _ssh._tcp .
各IPアドレスに対して/ 24サブネットpingを実行するための、1つのライナー付きのクイックCLI。早くてちょっと汚いけど、うまくいく。
for (( x=1; x <= 254; x++ )); do ping -c 3 192.168.0.$x; done
説明:範囲を変更するには、x = 1からx = 130に変更するか、開始位置を254から終了に変更します(135など)。
for (( x=130; x <= 135; x++ ));
ping -c 3は3つのpingを送信します。pingの数を変更するには、3を別のものに変更し、アドレス範囲を変更するには、192.168.0を別のものに変更します。
do ping -c 30 10.10.0.$x;
fping -ag 172.16.0.0/16
LAN内の他のコンピューターの名前を知っている場合、最も簡単な方法はそれらにpingを実行することです:
$ ping foobar
Pinging foobar.lan [192.168.0.25] with 32 bytes of data:
Reply from 192.168.0.25: bytes=32 time<1ms TTL=64
Reply from 192.168.0.25: bytes=32 time<1ms TTL=64
これは、ローカルルーターまたはDHCPサーバーに依存する場合があります。そのままのホスト名が機能しない場合は、.localを追加してください(つまり、ping hostname.local)。
明らかに、これは大規模なLANや記憶力の乏しい人々にはうまく機能しません。
Macを使用している場合(10.5以降を想定)、デスクトップアクセス用にVNCを有効にし、Flame.appを使用します。
それは本当に必要なものを正確にすばやく提供する、本当に素敵な小さなユーティリティです。唯一のものは、SSHよりも遠くに行かなければならないということです。
Windowsの場合:
1)書き込み:for / L%I in(1,1,254)DO ping -w 30 -n 1 168.29.0。%I これにより、ローカルネットワーク内のすべてのアドレスにpingが実行されます。
2)次に書いてください:arp -a これは答えたすべてのアドレスを与えます