私のDebianコンピュータにNICカードがあります。コンピュータはオフになっていますが、後でウェイクオンLANマジックパケットを送信して、他のDebianコンピュータで起動するためにネットワークカードがオンになっていることを知っておく必要があります。カードのMACアドレスがあります。 MACでイーサネットカードをpingしてカードが開いていることを確認する方法はありますか?
ARPエントリを作成しようとしています。
arp -s 192.168.2.2 00-0c-0d-ef-02-03
ping 192.168.2.2
ただし、ネットワークカードにこのIPアドレスがないため、機能しません。したがって、ネットワークカードはping要求を受け取りますが、応答しません。この問題を解決する方法はありますか?
Wake-on-LANメッセージを送信するためにetherwakeパッケージを使用しています。
答え1
このツールを使用すると、より良い幸運を享受できますarping
。このツールはping
レイヤ3で動作します。オープンシステム相互接続モデル、arping
レイヤ2で作業している間。
ただし、このツールを使用するにはシステムのIPを知る必要があります。 2つのバージョンがあり、ほとんどのUnix(Alexey Kuznetsov)に含まれる標準バージョンはIPアドレスのみを処理できるバージョンです。これその他のバージョン(Thomas Habets)MACアドレスを利用して照会が可能だそうです。
$ sudo arping 192.168.1.1 -c 1
ARPING 192.168.1.1 from 192.168.1.218 eth0
Unicast reply from 192.168.1.1 [00:90:7F:85:BE:9A] 1.216ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
arping
ping
ICMPパケットを送信する代わりにARPパケットを送信することを除いて、同様に機能します。
MACのみを使用してシステムIPを取得する
以下は、MACからIPへのリバースルックアップを実行するいくつかの方法です。
地図
$ nmap -sP 192.168.1.0/24
次に、arpキャッシュでそのマシンを見つけます
arp -an
。平らな
$ fping -a -g 192.168.1.0/24 -c 1
次に、上記と同様にarpキャッシュを確認してください。
平らな
$ ping -b -c1 192.168.1.255
次に、上記と同様にarpキャッシュを確認してください。
nbtscan(Windowsホストのみ)
$ nbtscan 192.168.1.0/24 Doing NBT name scan for addresses from 192.168.1.0/24 IP address NetBIOS Name Server User MAC address ------------------------------------------------------------------------------ 192.168.1.0 Sendto failed: Permission denied 192.168.1.4 MACH1 <server> <unknown> 00-0b-12-60-21-dd 192.168.1.5 MACH2 <server> <unknown> 00-1b-a0-3d-e7-be 192.168.1.6 MACH3 <server> <unknown> 00-21-9b-12-b6-a7
答え2
NIC自体は応答を送信しないため、通常のNICをpingできません。
実行中のコンピュータだけが応答を送信できます。
通常のネットワークインターフェイスカードは、自分自身に何の応答も送信しません。これには常にコンピュータで実行されるソフトウェアが必要です。
コンピュータのCPUの電源が切れると、pingへの応答を送信する実行中のソフトウェアはありません。
Wake on LANは一方向です。
LANで目覚めるコンピュータがNICに部分的に電力を供給してイーサネットフレームを受信し、その中でマジックウェイクアップシーケンスを見つけることを許可しますが、NICはまだ応答を送信しません。 Wake on LANは厳密に一方向です。返信は送信されませんでした。
例外
完全なNIC実装など、独自に応答を送信できる特別なNICがあります。TCPハンドシェイクオフロード。
答え3
コマンドはether-wake
MACアドレスを介して機能します。(a)IPアドレスを必要とせず、(b)コマンドを無害に送信することができます(すでに起きている場合は目覚めると何の影響もありませんか?)。
arp -an
MAC を取得するには、grep を使用して宛先ホストの IP を取得して、既存の arp キャッシュのリストを確認できます。ただし、arpはキャッシュなので、キャッシュが「タイムアウト」している可能性があります(そしてまだ「目覚めた」状態になる可能性があります)。その後、IPを見つけるために無差別代入方法を使用する必要があるかもしれません。たとえば、次のようになります。
sudo nmap -sP 192.168.2.0/24 | less
(それから00:0c:0d:ef:02:03を探してください。) - ファイアウォールやその他の要素が邪魔にならないとしましょう!
答え4
これはMacアドレスを介してpingする簡単なスクリプトです。たとえば、保存して実行します。
macping aa:bb:cc:dd:ee:ff
結果をデイジーチェーン方式で連結して、次のような他の操作を条件付きで実行することもできます。
macping aa:bb:cc:dd:ee:ff && echo do something if online || echo do something if offline
-
#!/bin/bash
network=192.168.1.1/24
if [ "$#" -ne 1 ]; then echo Usage example: $0 aa:bb:cc:dd:ee:ff; exit 2; fi;
nmap -sP $network >& /dev/null
ip=$(arp -n | grep $1 | awk ' { print $1 }')
ping $ip -n -q -c 2 -i 0.2 -w 1 >& /dev/null
if [ $? -eq 0 ]; then
echo Device is online \($ip\)
else
echo Device is offline
exit 1
fi;