問題タブ [avahi]
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.
dns - Avahi dnsconfd はどのように機能しますか?
/etc/resolv.conf にリストされていなくても、avahi-dnsconfd がブラウザーからの dns 要求を処理できることがわかりました。localhostが最初にクエリに応答できるかどうかを確認するのは、DNS解決仕様の一部だと思います。
問題は、ポート 53 に誰もいないように見えることです。
dns - avahi 対応のローカル サブドメイン DNS サーバーを実装するにはどうすればよいですか?
ツイストを使用して avahi 対応のミニ DNS サーバーを構築しました。
.local; で終わるリクエストを探します。ホストの URL の場合は{{hostname}}.local
、DNS サーバーのようなもので、OS にアドレスを解決させます。サーバーのようなものであれば{{subdomain}}.{{hostname}}.local
、にルーティングします{{hostname}}.local
。
このプログラムをもたらす機能は明確ではありません。必要なすべてのサブドメインを /etc/hosts に追加することなく、サブドメインを簡単に操作できます。プラス面は、ローカル ネットワークにあるマシンもサポートします。 avahi dnsconfd サーバーが実行されています。
コードは次のとおりです。
編集:サーバーは正しいIPでA回答を返すようになりました
dig でいくつかのテストを行ったところ、すべて問題ないように見えます。私のホスト名はtachtev
です。
これはdig www.tachtev.localの出力です
ここにnslookupの出力があります
URLを掘り下げると、すべてが良さそうです。しかし、www.tachtev.local をカールしようとすると、ホストが見つからないというエラーが発生します。
エラーはどこから来たのですか?
編集: 依存関係: avahi + avahi-dnsconfd + ツイスト + ツイスト名 (これは pip できません) 編集: 解決策は見つかりませんでしたが、達成したいことを実行するソフトウェアがありますhttp://pow.cx /
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 で検出されたサービスのみを表示するアプリケーションがそれを表示するように、手動でローカル マシンに登録する方法はありますか?
vmware - VMware で avahi @ Ubuntu を使用してホスト名に ping を実行します。解決しない
私は本当に奇妙な問題を抱えています。VMware プレーヤーで ubuntu 11.4 を実行している 2 つの仮想マシンがあります。これらの仮想マシンには、ネットワークへのブリッジ接続があります。それらは DHCP を使用するため、IP アドレスの代わりにホスト名を使用して相互に通信できるようにする方が簡単です。
そこが異様な事態に。
どちらも魅力のように機能します
独自のシステムでうまく機能します。しかし、マシン 2 で machine1.local に ping を実行すると、「ping: unknown host machine1.local」という結果になります。
すべてを試して確認し、avahi-browse でローカル マシンしか取得しなかった後、wireshark をインストールして、実際に何が起こっているのかを知りました。
私はwiresharkを実行し、次にavahi-browseを実行しました。Wireshark で、MDNS メッセージへのすべての応答を確認し、machine1.local と machine2.local を取得しました!!!
すごい!しかし、wiresharkをオフにすると、avahi-browseキャッシュが再び空になりました...
仮想マシンでwiresharkをオンにすると、avahi-daemonがMDNSメッセージを取得し、オフにするとメッセージが再び失われるのはなぜですか...
java - LinuxでのJavaとZeroconf(avahi)のマルチキャスト問題
リストから自己選択する必要のある静的IPアドレスがわからない状態で開始するVM用のJavaベースのソリューションを開発しようとしています。解決策についての私の考えは次のとおりです。
- Zeroconf / avahiを使用して、VMのIPアドレスを選択します
- VMは、マルチキャストを使用してMACアドレスをブロードキャストします。各VMは、予想されるピアMACアドレスの数を認識します。
- すべてのVMが他のすべてのMACアドレスを受信すると、それらをアルファベット順に並べ替え、リスト内のMACアドレスの位置(IP.1、IP.2など)に基づいてIPを選択します。
DHCPはどのような状況でもこの環境では利用できないことに注意してください。私は、この問題の回避策を見つけようとしています。
この例外の解決にご協力ください。お手伝いできることがあれば教えてください。ありがとう!!
これが私が使用しているJavaコードです:
/ sbin/ifconfigの出力は次のとおりです。
編集:ルーティングテーブルを追加:
python - Avahi.ServiceResolver を動作させることができません
現在Avahi raw dbusインターフェイスを使用しているコードを、Avahi gobjectインターフェイスを使用するように移植しようとしています(Pythonからのgobjectイントロスペクションを介して)。
ServiceBrowser を取得しましたが、ServiceResolver を動作させることができません。これが私のコードです:
出力例:
ctrl-cを押す前に、約1分間実行したままにしました。ご覧のとおり、ServiceResolver を呼び出していますが、sr_found メソッドと sr_failure メソッドは呼び出されません。どうすればこれを機能させることができますか?
( http://code.ohloh.net/でこれを行う他のコードを見つけることができないため、これを試みたのは私が最初ではないかと思います)
bonjour - BonjourのようにAvahiを使用する方法
mDNS レスポンダーとして Avahi と Bonjour を使用しています。
Bonjour では、query-in-answer セクションへの回答を取得しており、SRV、A、AAAA レコードなどの追加情報は DNS パケットの追加セクションにあります。
しかし、Avahi では、PTR、SRV、A、AAAA のすべてが回答セクションに表示されます。
Bonjour と同じ方法で応答を生成するように Avahi を構成するにはどうすればよいですか?
また、待ち時間が 2 ミリ秒以下で、Avahi で同じクエリを作成しようとしています。
c++ - リンクエラー:`avahi_alternative_service_name'への未定義の参照
ライブラリでこのシンボルを見つける必要があることを知っています。サービスを表示するためにavahiベースのテストコードをコンパイルしようとしています。しかし、undefined reference to
avahi_alternative_service_name'`を取得しています。これが含まれているライブラリがわかりません。UBUNTU12.04を実行しています。いくつかのパッケージをインストールしようとしましたが、成功しませんでした。
次のパッケージをインストールしています
指図
gcc -fpermissive testAvahi.c -o testAvahi