リンクされているデバイスを見つけるために、LAN ネットワークでスキャンを実行したいと考えています。iOS で IPAD 用のアプリを開発しています。
4 に答える
これらはモバイル デバイスであるため、ワイヤレス ネットワーク上のデバイスを検索する必要があると想定します。理論的には、wifi は通信に共有メディアを使用するため、ネットワークを流れるトラフィックを受動的にリッスンし、パケットを送信せずにクライアントに関するデータを収集できます。これは、一般にプロミスキャス モードと呼ばれるものです。実際には、ネットワーク アダプタ ドライバが MAC アドレス宛てのトラフィックのみを取得できる可能性は 99% あります。その場合、ネットワーク サブネットを積極的にスキャンする必要がありますが、これは 100% 正確ではなく、ネットワークの実装方法によっては攻撃の可能性があると見なすことができます。
スキャンの簡単な方法は、サブネット内のすべての IP アドレスに ICMP 要求 (ping) を送信し、エコー応答を返す人からデータを収集することです。一部のホストはアクティブであっても ICMP エコー要求に応答しないため、これは信頼できません。最初に必要なことは、自分の IP アドレスとサブネット マスクを見つけて、サブネット内で可能なアドレスの範囲を計算することです。範囲は、オペランドが IP アドレスとサブネット マスクのバイナリ値である論理 AND 演算子を使用して取得されます。これは、255.255.255.0 サブネット マスク (CIDR 表記では 192.168.1.1/24) を持つ一般的な 192.168.1.1 サブネットに対してこれを計算するプログラムの例です。
Address: 192.168.1.1 11000000.10101000.00000001 .00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111 .00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000 .11111111
Network: 192.168.1.0/24 11000000.10101000.00000001 .00000000
Broadcast: 192.168.1.255 11000000.10101000.00000001 .11111111
HostMin: 192.168.1.1 11000000.10101000.00000001 .00000001
HostMax: 192.168.1.254 11000000.10101000.00000001 .11111110
次に、範囲を反復処理し、すべてのアドレスに ping を送信します。考えられるもう 1 つのことは、ARP などのブロードキャスト トラフィックをリッスンし、その方法で情報の一部を収集することです。何を作ろうとしているのかはわかりませんが、ホストのネットワーク アダプタのベンダーを除いて、この方法では多くの有用な情報を得ることができません。
Bonjourは 2002 年から存在しています。ぜひご覧ください。
つまり、現在のキャッチフレーズを見てください。
ゼロ構成ネットワーキングとも呼ばれる Bonjour は、業界標準の IP プロトコルを使用して、ローカル ネットワーク上のデバイスとサービスを自動的に検出できるようにします。Bonjour は、Cocoa、Ruby、Python、およびその他の言語からアクセスできる洗練された使いやすいプログラミング インターフェイスを使用して、ネットワーク サービスの検出、公開、および解決を容易にします。