問題タブ [mdns]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - avahi を使用して、サブネットワーク全体でサービスを公開できますか?
Avahi は通常、サービス検出に使用されます。別のサブネットワークからサービスを検出できるようにしたいのですが、これを実現するために avahi を使用できますか?
たとえば、サービス ホストの IP は、マスクが「255.255.255.0」の「192.168.1.100」であるため、192.168.1.X サブネットワーク内にあります。別のホスト IP は、マスクが「255.255.255.0」の「192.168.2.100」です。avahi を使用して、このホストが以前のサービス ホストを検出できるようにすることはできますか?
android - Android NSD (Network Service Discovery) は iOS の Bonjour サービスと互換性がありますか?
iOS および Android 用のサーバーレス ローカル ネットワーク アプリを作成します。iOS デバイスと Android デバイスの両方のアプリは、お互いを見つけて通信する必要があります。
プラットフォームに組み込みのサービス (v4.1 以降では iOS の Bonjour と Android の NSD) があることは知っています。さらに、オープン ソースのjmdnsパッケージもすぐに使用できます。
選択方法と互換性はわかりません。
私の質問は次のとおりです。
- Android の NSD (ネットワーク サービス ディスカバリ) は、iOS の Bonjour と互換性がありますか? アプリでのサービス ディスカバリには何を使用すればよいですか。
- アプリの PC バージョンも開発する場合、サードパーティのライブラリを使用する必要がありますか?
windows - -remove コマンドを使用せずに Windows で mDNSResponder.exe を更新するにはどうすればよいですか
mDNSResponder.exe で作成したクライアント アプリケーションがありました。mDNSResponder は、特定の閉じたネットワーク環境で、DVR や ip-camera などの一部のサーバー ハードウェアの状態から受信したクライアント プログラムのデータをリアルタイムで更新します。
TCP などの別の通信プロトコルでクライアントから状態を更新した後、mDNSResponder.exe を使用してサーバー ハードウェアから受信した状態をクライアントが更新する新しい方法を作成しようとしました。しかし、mDNSResponder.exe が別の通信プロトコルでプロセスから作成された反映済み状態を更新できないという問題が発生しました。ご覧のとおり、mDNSResponder.exe は、更新タイミングの間に受信した状態をいくつか保存し、現在の状態ではなく、以前の状態を表示します。
この場合、他のアプリケーションも mDNSResponder.exe を使用するため、「-remove」および「-install」コマンドは役に立ちません。このアクションは、他のアプリケーションに悪影響を及ぼします。
したがって、Windows OS (XP、7、8) では、-remove コマンドを使用せずにリセット (または更新) された mDNSResponder.exe を見つけたいと考えています。
android - AndroidでNSD APIを使用してサービスを登録するときにTXTレコードを追加するには?
Android で NSD API を使用してサービスを登録しようとしていますが、TXT レコードを追加する方法がわかりません。
node.js - Node.js UDP クライアントがメッセージを受信しないのはなぜですか?
Node.js でマルチキャスト DNS クライアントを作成しようとしています。
目標は、実行したものと同じ論理出力を表示することです。
これは内部の UDP パケットです。
だから私はこれを書いた:
このスクリプトを実行すると、次のように出力されます。
そして tcpdump は同じものを出力します:
したがって、dns-sd と同じパケットを正しく送信し、同じものを受信しているように見えますが、スクリプトのmessage
イベント ハンドラーは起動しません。なんで?これを修正して、受信したパケットを出力するにはどうすればよいですか?
私はMacOSX10.9、Node.js 0.10.25を使用しています
linux - mDNS サーバーはリバース mDNS 要求をどのように処理する必要がありますか?
まず、いくつかの背景: avahid が組み込み Linux デバイスで問題を引き起こしていました (クラッシュするバグがあり、すぐに修正されるようには見えませんでした)。最小限の mDNS 機能しか必要としませんでした (つまり、Mac の誰かがまたは、PC で「ping6 mydevicename.local.」を実行して、そのホスト名をデバイスに解決することもできます)、そのため、基本的にマルチキャスト DNS パケットをリッスンし、必要な mDNS で応答するだけの最小限の mDNS サーバーを (C で) 作成しました。記録。
これはほとんどの場合機能します。特に、前述の ping6 テストを Mac から実行するとすぐに解決され、うまく機能します。
ただし、Linux ボックスから ping6 を実行しても、ある程度しか機能しないことに気付きました。特に:
- Linux クライアントがホスト名を解決するのに約 4 秒かかります
- この 4 秒の遅延は、送信されるすべての ping パケットに対して発生します。つまり、ping6 プログラムは、1 秒ごとに 1 つの ping を送信する代わりに、4 秒ごとに 1 つの ping を送信することになります。(ただし、期待されるポンは得られます)
- この問題は、組み込み Linux デバイスで avahid を実行していたときには発生しなかったため、この動作は、新しい mDNS サーバーが正しくないことを行っていることが原因であると考えられます。
- これが発生すると、私の mDNS サーバーは、次のデバッグ出力に示されているように、クライアントからリバース mDNS パケットを取得します。
[…]
だから私の質問は:
プログラムが mDNS サーバーを使用して mDNS ホスト名を解決しようとするたびに、Linux mDNS ホスト名解決クライアント ソフトウェア (NSS-resolver?) にこの 4 秒の遅延が発生する原因は何ですか?
上記のような mDNS リクエストに応答する適切な方法は何ですか? mDNS と DNS の仕様を調べましたが、何が必要かについて明示的なものは見つかりませんでした。通常の情報 (ホスト名、IP アドレスなど) で応答するようにしましたが、それでも遅延は解消されませんでした。
私が間違っているかもしれないことは他にありますか?(自分のmDNSサーバーをロールしようとする以外は-しかし、より良い代替手段があると感じた場合、それは私がすることではないことを信じてください; avahidはマスタードをカットしていませんでした)
mdns - Windows の標準 mDNS サービス
Windows (いくつかの最新フレーバー) には、デフォルトで mDNS サーバーがインストールおよび/または実行されていますか? もしそうなら、新しいサービスの広告を開始/停止するように、できれば動的にどのように指示しますか?
標準がない場合、その環境で複数の mDNS サーバーを実行しようとする競合の問題にどのように対処すればよいでしょうか?
基本的に、Linux、Windows、および Mac OS X で実行され、mDNS を使用して zeroconf Web サーバーの場所をアドバタイズする必要があるサービスを実装したいと考えています。Linux では、avahi-publish を使用する (または構成ファイルをインストールする) だけです。OS X の答えは簡単だと思います。Windows の情報を探すのに苦労しています。
android - Android - jmdns がデバイスを検出しない
ネットワーク上のサービスを検出するクラスを実装しようとしています。Android の NSDを使用してみましたが、サービスは正常に検出されますが、API レベル 16 以降しかサポートされておらず、サービス情報内の txtRecord フィールドを取得できないようです (何らかの理由で null を返します)。既知の問題であることがわかりました...
だから今、私はjmDNSで作業しようとしていますが、サービスがまったく見つからないようです。ここに私のクラスがあります (私は AndroidAnnotations フレームワークを使用しています) MDnsHelper:
そして、私のアプリでは次のように呼び出します:
そして、startDiscovery();
スキャンを開始し、スキャンstopDiscovery();
を停止します。
そしてもちろん、マニフェストで必要なアクセス許可をアプリに与えました...ここで何が欠けていますか? 追加のコード/情報を提供する必要がある場合は、お尋ねください。ありがとう!!