嗨我正在研究一個小型bash腳本,它將每隔5分鐘掃描一次局域網,並獲取主機,然後獲取其MAC地址。獲取本地網絡中的現場主機MAC地址
到目前爲止,我有這樣的:
nmap -sP -n -oG - 10.0.0.1-20 | grep "Up" | awk '{print $2}'
這給了我的IP地址。現在,我必須這樣做
arp -an | grep 'ip'
,但我是新來bash和我不知道:)
嗨我正在研究一個小型bash腳本,它將每隔5分鐘掃描一次局域網,並獲取主機,然後獲取其MAC地址。獲取本地網絡中的現場主機MAC地址
到目前爲止,我有這樣的:
nmap -sP -n -oG - 10.0.0.1-20 | grep "Up" | awk '{print $2}'
這給了我的IP地址。現在,我必須這樣做
arp -an | grep 'ip'
,但我是新來bash和我不知道:)
這裏是一個腳本,它完全符合你的要求:
#!/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
如何嘗試使用arp-scan
,如:
sudo arp-scan --interface=wlan0 192.168.1.0/24
對於查詢的第二部分你可以使用arping:
for host in $(nmap -sP -n -oG - 192.168.83.1-35 | grep "Up" | awk '{print $2}');
do arping $host -c 1;
done
這一個輸出的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..
偉大的!現在的問題是,我得到像 - (10.0.0.10)(不完整)的錯誤。 – ajitam 2011-02-05 00:19:50