問題タブ [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.
windows - Windows7ワイヤレスサービスが期待どおりに機能しない
私はこの1つの問題を抱えています。皆さんが私を助けてくれることを願っています...
IE用に作成したプラグインを使用しています...ネットワーク経由でデバイスを検出します...デバイスは私たち自身が作成したものです...これで、このプラグインは正常に動作し、イーサネットに接続されているときにデバイスを検出しますXPおよびWindows7のサブネット...WindowsXPのサブネットを介してワイヤレスで接続されている場合はデバイスを検出します...しかし、Windows 7を介してワイヤレスサブネットに接続すると、デバイスの検出が停止します... LANを有効にすると、デバイスが再び検出されます...この部分では非常に安定した動作をし、Windows 7がこれに責任があるかどうかはわかりませんが、考慮する必要がありました...ワイヤレスセキュリティが影響しているようですしかし、今オフのような証拠はありません...
プラグインコードを完全には認識していませんが、ネットワーク経由でmDNSresponderサービスを使用しています...
私はWindows764ビットOSとInternetExplorer9を使用しています...テストはWindows732ビットとIEバージョン8および9で行われ、同じ結果が得られました...Windowsファイアウォールは次のようにオン/オフになっています。良い...
間違ったスレッドで投稿した場合は申し訳ありませんが、矛盾があればご容赦ください...助けていただければ幸いです...ありがとう...
編集-1:プラグインはC ++で構築されており、そのコードも提供できますが、重要なのは、ここでは関与しないということです...Windows7のワイヤレスの問題のようです...I Wiresharkを使用してネットワーク経由でパケットをスニッフィングし、有線ネットワークで実行しているときにMDNSプロトコルを介して要求と応答を確認できることを発見しました...しかし、ワイヤレスネットワークに切り替えると、MDNSを介した要求または応答がないためです。ネットワーク経由でのみ送信されるクエリはありません...ワイヤレスネットワークに接続すると、プラグインがネットワークにクエリを実行できなくなるようです...可能であればこれを手伝ってください...どうもありがとうございました...
mdns - mDNSでサブタイプを検出する方法
サブタイプに基づいて発見しようとしています。例:avahi-publishを使用してサービスを登録する場合、
avahi-publish -s --domain = "local" --subtype = "_ annon._sub._http._tcp" "ServiceName" "_http._tcp" 80 "TxtRecord = Some Text"
サブタイプ「_annon._sub」に基づいてサービス検出を行う必要があります。それを行う方法はありますか?
c# - DNS(mDNS) 応答の読み取り
プロジェクトでは、mDNS 応答を読み取る必要があります。
IETF doc (および多くのスキーマを含む tcpguide ) を読みましたが、それらを尊重していると思いますが、問題があります。
多くの場合、ストリームを読み込もうとしていますが、読み込もうとしているデータに対してストリームが短すぎます。
いくつかのケースがありましたが、何かが足りないと思います。
具体的な例: 私はこれを受け取ります (受け取ったものを確認し、それを「デコード」するために小さな「応答パーサー」を作成しました:
ここに十分なデータがない理由がわかりません。切り捨てビットが false に設定されているため、このパケットにすべてのデータが含まれている必要があります。これは01101100
実際にはサイズが 108 であることを意味し、ここには 75 バイトしかありません。それで、私は何を間違っていますか?この問題は、主に回答を含むパケットで発生するようです。
dns - DNSCMD コマンドによって生成される dns ファイルのエンコード形式は何ですか?
DNS ゾーンにいくつかの Unicode Host A レコード名 (abcáxyz など) があります。dnscmd /zoneexport を使用すると、ゾーン ファイルが作成されます。このファイルをメモ帳またはテキスト エディタで開くと、レコード名が abc\303\241xyz と表示されます。このファイルをプログラムで読み取りたいのですが、ファイルへの書き込み中に dnscmd がどのタイプのエンコーディングを使用して、\303\241 のような ( á ) 文字を表すかを知りたいです。
次のエンコード形式を使用しようとしました
iso-8859-1、ISO-8859-15、ISO-8859-9、windows-1252、windows-1254。すべてが機能していますが、どれを使用すればよいかわかりません。
google-chrome-extension - Chrome SocketsAPIはChromeOS(Ubuntu、Windowsと比較して)で動作が異なりますか?
ChromeソケットAPIを使用してDNSサービス検出を実行するサンプルのChromeパッケージアプリがあります。重労働はここの例から借りています:
https://github.com/GoogleChrome/chrome-app-samples/tree/master/mdns-browser
_pdl-datastream._tcp.local
(デフォルトのの代わりに)のようなサービス名を使用します_services._dns-sd._udp.local
。
UbuntuとWindowsの両方のセットアップ(Chrome 25.0.1364.172)で、アプリはネットワークプリンターを正常に検出できます。そのIPアドレスとサービスインスタンス名を一覧表示できます。ただし、Samsung Chromebook(Chrome 25.0.1364.173)のChromeOSでは失敗します。何も見つかりません。
問題が何であるかについて何か考えはありますか?これは既知の問題ですか?
ruby - Ruby では、どのように DNS ルックアップで zeroconf/bonjour コンピュータのホスト名を逆にしますか?
ない
または
zeroconf/bonjour を使用するローカル サブネット上のホストを認識しているようです。IP アドレスを指定して、ローカル サブネット上の zeroconf コンピューターのホスト名を見つける必要があります。
dns - Avahi & Bonjour、DNS-SD ゾーン ファイルのダンプ
mDNS の Go ライブラリの改善を検討しています: https://github.com/davecheney/mdns/
著者と話をしたところ、彼は単に「私にとってはうまくいくようになった」と言っていますが、それは問題なく、オープン ソースの精神の範囲内です。
彼は、Avahi、Bonjour、および dns-sd 検出ツールがエクスポートしたサービスを見つけられないという相互運用性の問題について言及しました。
ポートと単純な名前で単純なサービスを実行するときに、Avahi によって公開されるレコードを理解しようとしています。
私は次の適切なバージョンを期待していました:
Avahi がゾーンをエクスポートする可能性がありますが、私にはうまくいきませんでした (「あなたは間違ったことをしている」という合図!) - 典型的な Avahi サービスによってエクスポートされる最小レコードを理解し、自動的に同じものを調べたいと思います。Lee-Hambleys-Macbook.local
mDNS の Go lang サポートを改善できるかもしれない、私のノートブックの Apple 実装からエクスポートされたものです。
他の人が Avahi/Bonjour/mDNS を使用している場合、掘り下げて期待どおりに機能していることを確認するために、どのツールを使用していますか?
#avahi の親切な人たちは、親切にも次のヒントを教えてくれました。
これにより、そのavahi-daemon
ゾーン ファイルが にダンプされますsyslog
。
しかし、理想的には、サーバーにクエリを実行する最善の方法を知りたいのですが、tcpdump
これも有望に見えますが、ゾーン内にあるすべてのものの完全なダンプではなく、ルックアップされるレコードのみを表示しています:
windows - Bonjour DNS-SD コールバックが呼び出されません。コードのどこが間違っていますか?
このブログ記事を参考にして、Bonjour の使用方法を学ぼうとしています。
http://marknelson.us/2011/10/25/dns-service-discovery-on-windows/
そのページの下部にリンクされているサンプル プロジェクトをダウンロードしました。魅力的に動作します。現在、コンソール アプリケーションでサービス ディスカバリをゼロから再現しようとしています。
DNSServiceBrowse
を返しますkDNSServiceErr_NoError
が、コールバックは呼び出されません。どうしたの?
macos - マルチキャスト (Bonjour) ホスト名を確認するにはどうすればよいですか?
Bonjour API を使用してレコードを登録しました。今、出版したばかりのレコードの内容を知りたいです。「デーモンのデフォルトを使用する」ことを意味するNULLホスト名を指定して作成しましたが、それが何であるかを照会する簡単な方法が見つかりません!
avahi を使えば簡単です。 を呼び出しavahi_client_get_host_name()
て、マシンのホスト名の開始値を取得します。
avahi と Bonjour の両方で、SRV レコードの値は登録の存続期間中に変更される可能性があります。登録が NULL ホスト名で行われた場合、レコードのホスト名は必要に応じて自動的に更新されます。ここで必要なのは、登録時にホスト名の初期値を取得する方法だけです。
私の Snow Leopard テスト マシンでは、デフォルトのマルチキャスト ホスト名がからのマシンの名前と同じではないgethostname(2)
ことに注意してください。
私が考えることができる4つの解決策:
- 私のプロセスでホスト名を取得します。どこかにあるかもしれません。プロセスのメモリ ダンプを検索した
strings(3)
ところ、アドレス空間でマルチキャスト ホスト名の 4 つのインスタンスが見つかりましたが、その名前が他の目的で使用されていることを考えると、これは偶然の一致である可能性があります。探している文字列がプロセスのどこかにあるとしても、それを正常に取得するための API が見つかりません。 - デーモンからホスト名を照会します。マッハポートを介して、それをフェッチするデーモンに送信できるクエリがあるかもしれません。API が見つかりません。関連するコードのチャンクは mDNSResponder の uDNS.c ファイルにあり、RPC インターフェイス経由で公開されていないようです。
- 登録したサービスを検索できました。ただし、これには多少のネットワーク トラフィックが含まれる可能性があるため、発生しないという保証がない限り、私はそうしたくありません。
uDNS.c のロジックを再実装します。次の組み合わせからマシンのホスト名を取得します。
- 動的 DNS 構成
- 静的に構成されたマルチキャスト ホスト名
- プライマリ インターフェイスの IPv4 アドレスの逆引き
gethostname(2)
具体的には、または同等のものを使用しません
そのロジックを再実装することは不可能に思えます。
現時点では、最初の SRV 登録の値を取得するためにルックアップを行う傾向がありますが、理想的ではないようです。正しい解決策は何ですか?