/ /ローカルネットワークのライブホストMACを取得する - bash、ip、ping、arp、nmap

ローカルネットワークでライブホストのMACを取得する - bash、ip、ping、arp、nmap

こんにちは私は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..