2011-02-04 12 views
2

こんにちは私は5分ごとにLANをスキャンし、ライブホストを取得し、その後、彼らのMACアドレスを取得する小さなbashスクリプトに取り組んでいます。私のIPアドレスを与えるローカルネットワークのライブホストMACを取得

nmap -sP -n -oG - 10.0.0.1-20 | grep "Up" | awk '{print $2}' 

は、これまでのところ、私はこれを持っています。今、私は

arp -an | grep 'ip' 

ような何かをしなければならないが、私はbashに新たなんだと私はどのように:)

答えて

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 
+0

!!問題は - (10.0.0.10)(不完全)のようなエラーが発生することです。 – ajitam

2

arp-scan、例えばを使用してみてください知らない:ここにある

sudo arp-scan --interface=wlan0 192.168.1.0/24 
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 
0

この1つはgreppable形式ですべてのレコードを出力します

nmap -n -sP 10.0.3.0/24 | awk '/Nmap scan report/{printf $5;printf " ";getline;getline;print $3;}' 

ホストのARPテーブルにはまだなっていないIPの/ MACのためにも動作するようです。それはいいことだ。私のシステムでは受け入れ答えからスクリプトをのみで

結果... 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.. 
関連する問題