2

こんにちは私は5分ごとにLANをスキャンし、ライブホストを取得してからMACアドレスを取得する小さなbashスクリプトに取り組んでいます。

これまでのところ私はこれを持っています:

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

これでIPアドレスがわかります。今、私は次のようなことをしなければなりません

arp -an | grep 'ip'

しかし、私はbashを初めて使用し、方法がわかりません:)

4

4 に答える 4

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
于 2011-02-05T00:11:59.747 に答える
2

を使用してみてくださいarp-scan。例:

sudo arp-scan --interface=wlan0 192.168.1.0/24
于 2011-02-05T00:04:13.493 に答える
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
于 2013-03-27T09:42:33.303 に答える
0

これは、すべてのレコードを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..
于 2015-02-19T13:09:25.307 に答える