こんにちは私は5分ごとにlanをスキャンし、ライブホストを取得し、次に彼らのMACアドレスを取得する小さなbashスクリプトに取り組んでいます。
これまで私はこれを持っています:
nmap -sP -n -oG - 10.0.0.1-20 | grep "Up" | awk "{print $2}"
それは私にIPアドレスを与えます。今私は何かをする必要があります
arp -an | grep "ip"
しかし、私は "bashを初めて使う人には新しい方法を知っていません:)
回答:
回答№1は4ここでは、あなたが望むものを正確に実行するスクリプトがあります:
#!/bin/bash
HOSTS=$(nmap -sP -n -oG - 192.168.1.1-10 | grep "Up" | awk "{print $2}")
for host in ${HOSTS}; do
arp -an | grep ${host} | awk "{print $2 $4}"
done
回答№2については2
使用してみてください arp-scan
例えば:
sudo arp-scan --interface=wlan0 192.168.1.0/24
回答№3の場合は0
クエリの2番目の部分では、arpingを使うことができます:
for host in $(nmap -sP -n -oG - 192.168.83.1-35 | grep "Up" | awk "{print $2}");
do arping $host -c 1;
done
回答№4の場合は0
これはすべてのレコードをgreppable形式で出力します:
nmap -n -sP 10.0.3.0/24 | awk "/Nmap scan report/{printf $5;printf " ";getline;getline;print $3;}"
それは、IP / MACのためにも機能するようです。ホストのARPテーブルにはまだありません。それは良いことです。私のシステムでは、受け入れられた回答のスクリプトは、ARPテーブルにリストされているホストのみを表示します...
結果:
10.0.3.100 B8:27:EB:8E:C5:51
10.0.3.101 00:26:B6:E1:4B:EB
10.0.3.112 00:01:29:02:55:25
etc..