問題タブ [dns-sd]
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.
c# - 利用可能な純粋な C# ZeroConf 、bonjour、または dns-sd はありますか?
Zeroconf を使用する .net-microframework アプリを構築しています。既存の zeroconf ソリューションはすべて、dns-sd.dll または .netmf でサポートされていない .net の他の相互運用機能に依存しているようです。
あなたが知っている zeroconf (または dns-sd) の純粋な C# バージョンはありますか?
c - kDNSServiceFlagsShareConnection を使用して DNSServiceRef を共有すると、プログラムが停止する
Bonjour の dns-sd API を使用してクライアントを構築しています。1 つの DNSServiceRef の接続を共有するために使用される kDNSServiceFlagsShareConnection というフラグがあることに気付きました。
アップルのサイトによると
効率のために、多くの同時操作を実行するクライアントは、独立した操作ごとに個別の接続を使用するのではなく、バックグラウンド デーモンとの単一の Unix ドメイン ソケット接続を使用することができます。このモードを使用するには、クライアントはまず DNSServiceCreateConnection(&MainRef) を呼び出して、メインの DNSServiceRef を初期化します。同じ接続を共有する後続の操作ごとに、クライアントは MainRef をコピーし、そのコピーのアドレスを渡し、ShareConnection フラグを設定して、この DNSServiceRef が典型的な初期化されていない DNSServiceRef ではないことをライブラリに伝えます。これは、接続情報を再利用する必要がある既存の DNSServiceRef のコピーです。
フラグの使用方法を示す例もあります。私が抱えている問題は、プログラムを実行すると、フラグを使用して関数を呼び出すたびに何かを待っているようにとどまることです。コードは次のとおりです。
何か案は?考え?提案?
iphone - サブネット間で Bonjour を使用してサービスをアドバタイズする方法は?
私は、「ローカル」ドメインでの広告サービスに Bonjour を使用することに精通しています。私はいくつかの例に取り組み、そのために使用する対応する Cocoa クラスを知っています。
シンプルな Bonjour サービスを別のサブネットにアドバタイズする方法に興味があります。具体的には、イーサネット経由で接続されているデスクトップで実行されるネットワーク サービスを作成しようとしています。クライアントは、Wifi 経由で接続されたモバイル デバイス (iPhone/iPad) で実行されます。私のネットワーク設定では、Wifi はイーサネットとは異なるサブネット上にあります。ただし、どちらもファイアウォールの背後にあります。ファイアウォールの外側にアドバタイズする必要はありません。wifi クライアントが、イーサネットに接続されたサーバーによってアドバタイズされたサービスを表示できるようにしたいだけです。
これは可能ですか?Bonjour がサブネット間の通信をサポートすることになっていることは知っていますが、この機能について読み込もうとすると、DNS レコードなどに深く掘り下げられます。私はアプリケーション開発者です...私はそのことについて何も知りませんし、ユーザーに心配させたくありません。簡単なものがありませんか?
windows - Windows から TXT および SRV レコードを照会する方法は?
ネイキッド ホスト名 (例: _service._proto) を使用して SRV レコードのセットをクエリしようとしていますが、ドメイン名も含めないと失敗します。nslookup などの他のツールが正常に動作し、同じ API 呼び出しを使用して A レコードをクエリしても、ネイキッド ホスト名で正常に動作するため、これは奇妙です。
もちろん、システムにクエリを実行してプライマリ ドメイン名と、場合によっては構成済みのすべての検索ドメインを取得することもできますが、そうする必要はないと確信しています。Windows DNS API への参照がほとんど見つからないため、TXT および SRV レコードをクエリするためのより良い方法があるかどうか疑問に思っています。Windowsでこれを経験した人はいますか?
提案をありがとう、ロバート
linux - dhcp ベースの DNS を構築するために、.local ドメインの IP アドレスを階層的に収集することは可能ですか?
通常の dhcp 環境にいるとします。
次のような IP アドレスが取得されます。
- セグメント A の linuxpc1.localdomain の場合は 192.168.0.101
- セグメント B の linuxpc2.localdomain の場合は 192.168.1.102
ホスト名が設定されたlinuxpcにavahiをインストールするだけでそれらを調べたいです。
したがって、192.168.2.103 linuxpc3.localdomain で実行中
動作します。
DHCPサーバーの設定に影響を与えずにこれを実現する最も簡単な方法は何ですか?
または、これが難しい場合は、少なくとも linuxpc3.localdomain ホストからスクリプトを実行している名前の IP アドレスを知りたいと思います。
NIS も LDAP も SQL もセットアップしたくありません... dhcped の IP アドレスを解決する avahi 機能を再利用することから始めるのがよいと思いました。
android - jmDNS を使用した zeroconf サービスの登録解除
アプリがアクティブな間にzeroconfを介してAndroidアプリにサービスを登録させ、アプリの終了後に登録を解除しようとしています。私の onResume メソッドには、次のコードがあります。
その後、私の onPause メソッドで:
マルチキャストの有効化などを行うコードを削除しました。ポイントは、サービスを問題なく登録でき、その後、別のデバイスで zeroconf ブラウザーを使用して表示できることです。ただし、一度登録すると、サービスを登録したデバイスで実際にwifiを無効にしない限り、サービスが消えることはありません。unregisterService の呼び出しは、実際にはサービス登録に影響を与えないようです。unregisterAllServices も効果がないようです。誰にもアイデアはありますか?
c - Avahi dns_sd 互換レイヤーが Browse コールバックの実行に失敗する
バックグラウンド
dns_sd.h
Haskell 用のクロスプラットフォーム Zeroconf/Bonjour/DNS-SD ライブラリに取り組んでおり、 APIをターゲットにすることが最善の策だと考えました。Linux では、このインターフェースの実装は、Bonjour API のサブセットをサポートすると主張するAvahiによって提供されます。
問題
ライブラリのサニティ チェックとして、API の必要最小限を使用するだけの小さなテスト プログラムを C で作成しました。タイプ のネットワーク上の任意のサービスをブラウズし_http._tcp
、メッセージを見つけるとすぐにメッセージを出力してから終了します。
私の Mac では、このテスト プログラムは C と同等の Haskell の両方で問題なく動作します (私のプリンターが見つかります。エキサイティングです!):
しかし、私の Linux マシンでは、プログラムはコールバックを呼び出さずに終了する前に私を怒らせます。
質問
- Avahi
dns_sd
互換性レイヤーは、依然としてクロスプラットフォーム バインディングの適切なターゲットですか? それとも、ネイティブの Avahi API を使用することについて、その警告メッセージは深刻なので、リターゲットを検討する必要がありますか? - C でのクロスプラットフォーム Zeroconf の最新技術は何ですか?
bonjour - dns-sd: リモート サービスを手動で登録する方法
別の物理ネットワーク上にある別のリモート システムにサービスがあり、そのマルチキャスト パッケージがローカル システムに到達しないため、DNS-SD 公開サービスが表示されません。
DNS-SD で検出されたサービスのみを表示するアプリケーションがそれを表示するように、手動でローカル マシンに登録する方法はありますか?
ios - dns_sd.h で DNSSDObjects を参照し、MonoTouch で DNSServiceResolve を参照する
DNSSDObjects への参照を MonoTouch のプロジェクト、特に DNSServiceResolve オブジェクトに追加したいと考えています。
MonoTouch プロジェクトで DNSServiceResolve にアクセスしたいのですが、そのクラスがどこにも見つかりません。
どうすればそれができますか?