NMapスキャン用にIP範囲と個々のIPを指定できることに精通しています。さて、IPを指定せずに接続されたLANをスキャンできるコマンドがあるかどうかを知りたいです。
状況によっては、一部のLANには192.168.0.1があり、他のLANには192.168.10.1があります。私はNMapにこの要素を自動的に認識し、それに基づいてスキャンを実行させる方法を探しています。
可能ですか?
答え1
次のコマンドを使用してこれを実行できますip a
。
nmap `ip a | grep "inet " | grep -v 127.0.0.1| sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g' | cut -d" " -f2`
サブドメインマスクでIPアドレスを取得し、パラメータとして使用します。nmap
必要に応じて追加のパラメータを追加する必要があります。
答え2
ifconfig
サンプルawk
スクリプトを使用して、フォーマットをIP /プレフィックスに設定できます。コマンドは次のようになります。
ifconfig | awk -F'[ :]' -f f
f
ファイルの場所は次のとおりです。
function cnt(N){
c = 0
for(i=0; i<8; ++i) if(and(2**i, N)) ++c
return c
}
function s2p(mask) {
split(mask, v, ".")
return cnt(v[1]) + cnt(v[2]) + cnt(v[3]) + cnt(v[4])
}
/inet/ && !/127.0.0.1/ {print $3"/"s2p($6)}
この関数は単にネットマスクのawk
数量を計算します。1