問題タブ [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.
macos - mDNSResponder には、別の名前解決スキーム用のプラグイン システムがありますか?
このアイデアについてのガイダンスをどこから探し始めればよいかよくわからないので、stackoverflow が出発点として適していると考えました。
サーバーベースの DNS を超えた別の名前解決メカニズムを追加したいと考えています。(実際のDNSサーバーを必要とせずにネームコイン解決を取得したいと考えています。)
mDNSResponder は、「Bonjour」mDNS ルックアップだけでなく、すべての DNS 解決を担当するようになったことを知っているので、フックするのに妥当な場所のようです。
このアプローチに関するガイダンスはありますか?API ドキュメントへのリンク、mDNSResponder コードベースに詳しい人からのガイダンスなどを紹介します。
qt - Bonjour を OSX 上の Qt Creator に追加するにはどうすればよいですか?
OSXのQt CreatorでBonjour登録を行うクラスを作成しています。dns_sd.h を .pro ファイルのインクルード構成に追加したいと思います。これは、次のように行われると想定しています。
INCLUDEPATH += /usr/include/
次の質問は、適切なライブラリがどこにあるのか、どのように追加すればよいのかということです。OSX の /usr/lib フォルダまたは /usr/lib/system フォルダに bonjour ライブラリが見つかりません。
linux - Avahi Hostname Resolution: どこかにキャッシュしていますか?
Fedora 18 と avahi コマンド ライン ツール (バージョン 0.6.31) を使用しています。
開発中のテスト目的で、avahi-resolve-host-name を使用してサブネット上のユニットの IP アドレスを検出します。Wireshark でリクエストとレスポンスを監視します。要求と応答が 1 回成功すると、それ以上の要求は Wireshark に表示されなくなりますが、ツールは引き続き IP アドレスを返します。コンピュータ/avahiデーモン/何かが結果を「キャッシュ」している可能性はありますか?
質問: avahi-resolve-host-name の呼び出しごとにリクエスト パケットを送信したいと考えています。これは可能ですか?
理由: いわば「誤検知」が発生しています。「test1.local」を解決しようとすると、結果の IP が取得されますが、ユニットはこの IP に配置されなくなりました。リクエストを毎回送信して、間違った IP アドレスでユニットが表示されるのを回避できるようにします。
airplay - AirPlayボタンを表示させるには?
現在、ある種のエアプレイ サーバーを作ろうとしていますが、失敗しました。問題は、airplay ボタンが私の iOS デバイスに表示されないことです。このリンクをたどりましたが、airplay サービスを登録する必要がある部分で行き詰まっています。コマンドを使用
dns-sd -R MyAirplayService _airplay._tcp local 22555
しています。サービスは登録済みとして表示されますが、ボタンはありません。ポートを 7000 または 7100 に変更しようとしましたが、結果は同じでした。どこが間違っているのか教えてもらえますか?
ios - さらにアイデアが必要:iPhoneがWifiに接続されているかどうかを確認する方法
私はDebianサーバーを持っています。このサーバーは、自宅の Wi-Fi で iPhone が利用可能かどうかを確認する必要があります。問題は、モバイルデータが利用可能な場合、i-Devices が wifi モジュールを安全な電力に一時停止することです。したがって、1 つの解決策は、モバイル データをオフにするだけで、Wi-Fi での検出が正常に機能することです。(しかし、これは私にとって本当の解決策ではありません。なぜなら、家にいるたびに手動でこれを行うのは面倒で、他の人もこのソフトウェアを使用するからです。)
これまでに iPad Mini と iPhone5 (ios7) でテスト済み:
私はAndroidのタスクを完了しました。Androidでは、ネットワーク接続が変更された場合にブロードキャストがあるため、プログラムでブロードキャストをキャッチし、Debianboxに登録するだけです。iDevice で同じことを試みましたが、バックグラウンドで Objective-C の Wifi-Status-Changes をインターセプトできないようです。フォアグラウンドでは、Apple-Reachability-Class を通じて可能です。しかし、バックグラウンドで必要なので、これは不可能です。
iPhone のすべてのポートをスキャンし、Wifi モジュールが起動することを期待してリクエストを実行してみます。
UDP ポートを開く:
- ポート ステート サービス バージョン
- 999/udp open|filtered applix
- 1090/udp オープン|フィルタリングされた ff-fms
- 5001/udp open|filtered commplex-link
- 5353/udp open|filtered zeroconf
- 18134/udp オープン|フィルタリングされた不明
- 19141/udp オープン|フィルタリングされた不明
- 19717/udp オープン|フィルタリングされた不明
- 20919/udp オープン|フィルタリングされた不明
- 21354/udp オープン|フィルタリングされた不明
- 31625/udp オープン|フィルタリングされた不明
- 49191/udp オープン|フィルタリングされた不明
- 57409/udp オープン|フィルタリングされた不明
TCP ポートを開く:
- ポート ステート サービス バージョン
- 62078/tcp オープン tcpwrapped
ポート 5353 UDP (Bonjour/MDNS)でnetcatを使用してリクエストを作成しようとしました。その結果、iDevices は最初の 30 分で実際に wifi モジュールを起動します。その期間の後、リクエストがwifiモジュールをウェイクアップした場合、それは一種の運です。たぶん30分くらいで「深い眠り」が来ていると思います。
Wi-Fi ホットスポットとしての MacBookPro と、これに接続された iDevices。次に、Wireshark を使用してトラフィック全体を盗聴し、Wifi 経由で送信されたメッセージを確認しました。少なくとも、すべての iOS7 デバイスによって行われる MDNS マルチキャストが見つかりました。このメッセージは、小さな Python サーバーでキャッチできます。-> 動作しますが、デバイスがマルチキャストを送信する期間は 1 分から最大 30 分以上であるため、安定していません。
創造的な方法: iDevice をウェイクアップするためのサイレント プッシュ通知。その後、wifi での ping が可能です。つまり、プッシュ通知は私の Wi-Fi を起動するだけです。-> 動作しますが、APN サーバーはプッシュ メッセージが配信されたかどうかを通知しないため、あまり信頼できません。これをテストしたところ、APN サーバーがメッセージを「飲み込む」ことがありました。そして、5 分ごとにインターネット接続とモバイル データ トラフィックをチェックして、デバイスが Wi-Fi に接続されているかどうかを確認します。これはベスト プラクティスとは言えません。しかし、これまでのところバッテリー寿命の最良の解決策です。
ジオフェンス リージョンで自宅にいることをトリガーします。これは可能で機能しますが、バッテリーのコストが非常に高くなります。しかし、おそらく他に良い解決策はありません。
arp-scan は、ip-range に対して arp-request を行うツールです。モバイルデータがオンになっている場合、これは機能しません。
だから私の質問:
- iDevice の wifi モジュールをウェイクアップするために送信できる特定のポートにリクエストはありますか?
- このタスクを解決する客観的な方法はありますか?
- MDNS リクエストを送信できますか? iDevice はそれに応答しますか?
- バックグラウンド リスニング ソケットと Debianbox がそれに接続するアプリを作成できますか?
- このタスクを解決できる他のアイデアはありますか? 私はアイデアがありません。
ありがとう
c - udp パケット中にソケット sendto がエラー 22 を取得する
サービス検出のために mdnsreponder を使用する 1 つのクライアント アプリケーションを作成しました。クライアント IP が非常に頻繁に変更されるという要件が 1 つあります。IP に変更があった場合はいつでも、ディスカバリーをやり直す必要があります。そこで、1 分ごとに IP を変更して検出を行う簡単なテスト アプリケーションを作成しました。
すべて正常に動作しますが、いくつかの IP 変更 (約 7 ~ 10 回変更) の後、以下のソケット エラーが発生します。
(以下はmdnsresponderコード内のsendto socket関数のエラーコードです)
その後、私のリクエストはそれを新しい IP のインターフェイスに配置しません。
繰り返しますが、アプリケーションを再起動する必要がありますが、それだけで機能します...
誰かが問題を解決するのを手伝ってくれますか?
windows - MinGW での mDNSResponder のコンパイル
非常に重要なプロジェクトのために、MinGW で mDNSResponder を構築しようとしています。MinGW をインストールし、mDNSResponder の最新バージョンを Apple のサイトからダウンロードしました。MinGW 用にビルドする方法はないようです。また、ビルドするには pthreads が必要なようです
Bonjour SDK も見つけましたが、MSVC 互換ライブラリしか含まれていないようで、MinGW で reimp を使用してそれらを DLL に変換しようとすると、「無効または破損したライブラリ」というエラーが返されます。おそらくこれは、MS が名前マングリング スキームを時々変更するためです。
どんな助けでも大歓迎です!
グレッグ