ネットワーク上のコンピュータをスキャンしてコンピュータについて何も知らない状態で、コマンドラインからIP、MAC、およびDNS名を取得する方法はありますか?
答え1
nmap -v -sn 192.168.1.0/24 | grep -v down
PSもちろん、必要に応じてサブネット設定を変更できます。
pps。 nmapのバージョンに応じてMACアドレスを表示するかどうか。 5.21+(debian test+)が表示されます。 5.0(現在の Debian 安定版)はそうではありません。
答え2
arp -a
これらの情報はすべてインストールせずに破棄されますnmap
。しかし、nmap
Active Scanningが行われるのでアップデートになります。
答え3
本当に何も知らない場合は、まずインターネットを手動で聞く必要があります。ローカルネットワークは非常に複雑で、ほとんどのパケットがすべてのネットワークデバイスに送信されます。パケットの階層を分解して、トポロジについて多くを学ぶことができます。ネットワークによっては、これはまったく不可能かもしれません。
たとえば、
イーサネットフレームはイーサネットアドレスを提供します。
アドレス解決プロトコル(ARP)は、イーサネットアドレスをネットワークアドレスに接続し、ネットワークデバイス間の関係に関する暗黙のヒントを提供します。
IP(インターネットプロトコル)は、IPアドレスを持つ2つのホスト間の関係を提供します。
TCP(トランスポート制御プロトコル)を使用すると、どのサービス(ポート)が有効になっていて、どのコンピュータが互いにチャットしているかを確認できます。
UDP(ユーザーデータグラムプロトコル)はTCPと同じ情報を提供します。実際にアクティブ検索以上の内容を学ぶことができます。
特定の情報を見つけるには、tcpdumpを使用するか、pcapライブラリを使用できます。私は一つ作った小さな例パールから。すべてのハードウェアアドレス、ネットワークアドレス、TCP、UDPポートをダンプします。