2011-02-03 4 views
1

私はスーパーデュッパーアプリと呼ばれるデスクトップソフトウェアを持っているとしましょう。私はそれがスーパーデュッパーアプリを実行してこのローカルネットワーク上のすべてのコンピュータを検出できるようにしたい。「このローカルネットワーク上の他のコンピュータを参照してください」という機能を追加するにはどうすればよいですか?

一般的なポインタは本当に感謝します。 Pythonのポインタやスニペットのボーナスポイント。

答えて

3

短い答えは、multicast packets in pythonです。私はavahiのpythonバインディングもあります。これは、マルチキャストの上に実装された "ZeroConf"とも呼ばれるmDNS/DNS-SDを実装しており、より標準化されているだけでなく、ホイールを再構成する必要もありません。

マルチキャストは、特定のマルチキャストグループに関心を登録するために、ホスト(通常はアプリケーションを実行するアプリケーション経由で)を許可するという点で、ユニキャスト(1つのホストに行くパケット)とブロードキャストマルチキャストトラフィックは適切なサポートでルータとスイッチを通過できます。アイデアは、加入しているすべてのホストにパケットを送信するための最小限のスパニングツリーが構築されているということです。 IPv4マルチキャストでは、224/4サブネットを使用します。 IPv6の場合、これはff00 ::/8です。イーサネットマルチキャストアドレスでは、MACアドレスにマッピングされます(MACアドレスでマルチキャストビットが1に設定されている)。マルチキャストストリームの効率的なフィルタリングが可能になります。

たとえば、RIPv2を実行しているルータは、マルチキャストを使用して他の隣接ルータを検出し、RIPに関心のないホストを煩わせることなくルートを共有します。

mDNS/Bonjour/Rendevouzは、1つのマルチキャストグループを使用してLAN上の利用可能なサービスをリストしたDNSスタイルメッセージを共有する自動サービス検出のアプローチです。

+0

6分前にこのanwserを受け入れることはできません。それまでの間、あなたは私にそれについての詳細を教えてもらえますか?マルチキャストパケットとは何ですか? mDNS/DNS-SDと呼ばれる「ZeroConf」とは何ですか? –

+0

Google?私は今日それがダウンしなければならないと思う;-) – diagonalbatman

+2

もちろん、私はグーグルとアンディです。どう思いますか?別のOPを引用するために、 "Googleはリストを反復するのと同じですが、SOはハッシュマッピングを使うようです"。だから私がo(1)anwserを持つことができれば、o(n)look upをしている間にそれを求めないでください。 –

関連する問題