web-dev-qa-db-ja.com

Nmap:範囲から無料のIPを見つける

ネットワーク上の無料のIPをスキャンする方法はありますか?私が使う nmap -sP 192.168.1.0/24しかし、これは実際には稼働中のホストを示しています。

14
HTF

このようにNmapを使用することは、いくつかの前提条件が満たされていることを条件として、あなたが質問したことを実行するかなり正確な方法です。

  1. TCP接続ではなく)ARP要求を送信するには、ルート(またはWindowsの管理者)としてスキャンを実行する必要があります。そうしないと、単にファイアウォールで保護されている場合、スキャンでアドレスが「ダウン」と報告される場合があります。
  2. これは、スキャンしているアドレス範囲と同じデータリンク(レイヤー2)上のシステムからのみ実行できます。そうでない場合、Nmapは、ファイアウォールによってブロックされる可能性があるネットワーク層プローブを使用する必要があります。

「利用可能な」アドレスを取得するには、Nmapが「ダウン」として報告するアドレスのリストを取得する必要があります。これは、単純なawkコマンドで実行できます。

Sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

Nmap使用されるオプションの要約:

  • -vオプションを使用すると、Nmapは、「アップ」のアドレスに加えて、「ダウン」として検出したアドレスを出力します。
  • -sPの代わりに、新しいスペル-snを使用しましたが、これは同じスキャンを実行しますが、誤解を招く「Pingスキャン」ではなく「ポートスキャンをスキップする」ことを意味します(ホスト検出フェーズ以降) ICMPエコースキャンまたはPingを意味するわけではありません)。
  • -nオプションは、名前ではなくIPアドレスのみに関心があるため、逆DNSルックアップをスキップします。これにより、少し時間がかかります。
  • -oGオプションは、Nmapを出力するように指示します grepable 形式です。これは、awkが処理しやすい形式です。引数 "-"は、この出力をstdoutに送信します。

次に、awkコマンドは「Status:Down」を検索し、IPアドレスを含む2番目のフィールドを出力します。

もちろん、スイッチの実行構成またはDHCPサーバーのリースにアクセスできる場合は、セキュリティアラームを発する可能性のあるスキャンを行わなくても、この回答をより信頼できるものにすることができます。

26
bonsaiviking

N-mapについては不明ですが、各アドレスに1つのpingを送信するpingスクリプトを作成した場合、「destination unreachable」で戻ってきたホストはすべて占有されておらず、「request time out」で戻ってきたものはすべて空いていると合理的に想定できます。は占有されていますが、pingに応答していません。 2つの応答の違いは、「destination unreachable」がARP要求に対する応答を受信しなかったことです。 「リクエストタイムアウト」は、何かがARPリクエストに応答したが、ICMPパケットには応答しなかったことを意味します。

1
MartinC

これがアンダース・ラーソンに触発された別のものです

172.18.5。{129..254}のIPの場合。 do {ping -c 1 -W 1 $ ip; }&>/dev/null || echo $ ip&done |ソート

つまり、「範囲内のすべてのIPに対してpingを実行します。「ping」が失敗した場合は、そのIPを印刷します」

もし、するなら

nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

高速に動作しますが、「ダウン」と報告されている一部のホストが実際には「アップ」であることに気付きました

0
Radu Gabriel

これはPowerShellでも同じです...

((nmap -v -sn -n 10.208.2.0/24 -oG - ) -match "Status\:\sDown") | foreach {($_).Split(" ")[1]}
0
gsarnold