問題タブ [ssdp]
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.
cordova - 同じネットワークに接続されているデバイスの IP アドレスとポートを見つける
ローカルネットワーク上の特定のデバイスの IP とポートを (動的に) 見つけて、投稿リクエストを送信し、その API を介して通信できるようにする、angular/cordova で iOS および Android 用のアプリケーションを構築しています。
SSDP
API は、デバイスを使用またはDNS-SD
発見できると言っています。ネットワークに接続されているすべてのデバイスのリストを取得するのに役立つ次の 2 つのヘルパーを調べました。
しかし、ノードに関する限り、サーバー側のフレームワークであるため、アプリでノード モジュールを単に「要求」することはできません。ここに行く最も論理的な方法は何ですか? ネットワークに接続されているすべてのデバイスのリストを取得したいだけですが、これは難しいですか?
sony - Sony A-7R (ILCE-7R) がファームウェア 2.0 アップデート後、Sony Remote API による接続を拒否する
最近、Sony Alpha 7R 用の新しいファームウェア 2.0 がリリースされました。今ファームウェアをアップデートしました。その後、Sony Remote API を使用するアプリケーションはカメラに接続できなくなります。UDP トラフィックを監視しようとしました。SSDP の問題が表示されます。アプリケーションは、SDK からの要求に従って SSDP 要求を送信しますが、応答がまったくありません。
更新: 調査の後にメモを作成する必要があります。カメラとコンピュータの Wi-Fi が少しの間 (最大数分) アイドル状態になっている場合でも、そのアイドル期間後に要求された場合、接続は可能です。
p2p - SSDP の使用方法を教えてください。
アプリケーションがローカル ネットワーク上で同じアプリケーションを使用しているユーザーを見つける方法が必要です。
しかし、SSPD のようなプロトコルを使用するためのドキュメントが見つかりません。ポート1900のUDPとIP 239.255.255.250を示しています。
また、NOTIFY と M-SEARCH を使用できるとも書かれています。
しかし、それだけです。壁にぶち当たりました。そして、私はいくつかのガイドが必要です。
概要
私のアプリが自動的にお互いを見つけて、ローカルネットワーク上でIP /名前を交換して、接続ブローカーなしでp2pスタイルでお互いに話せるようにしようとしています.
security - SSDP リフレクション/増幅攻撃を正しく防ぐには?
SSDP M-SEARCH
クエリに応答する必要があるデバイスを実装しています。
私はデバイス ベンダーであり、これらのデバイスが展開される場所を制御できません。
SSDP 検索増幅を使用する既知の DDoS 攻撃があります。つまり、攻撃者が偽のアドレスから検索要求を送信し、不十分にコーディングされた SSDP サーバーがその偽のアドレスに応答します。偽のアドレスは打ちのめされます。
デバイスがこのような攻撃に使用されないようにするにはどうすればよいですか?
- TTL=2 のみを設定し、ルーターに依存してパケットをドロップする
- 自分のサブネットからのリクエストにのみ応答する
- 有効なクエリ元サブネットの構成オプションを追加します
- 「ローカル」と「グローバル」の IP アドレスを推測する
- 応答スロットルを追加します。最善を尽くします
- あなたの提案は?
Wrt 1. TTL は SSDP 仕様ごとに構成可能にする必要があります。応答がかなり低い場合でも、ローカル ネットワークから漏れます。ネットワーク上にブリッジされた VPN がある場合、応答はかなり遠くまで漏れます。
Wrt 2. 複数のサブネット (たとえば、ワイヤレス クライアント用の 1 つのサブネット、デスクトップ用の別のサブネット、さらにサーバー用の別のサブネット) に到達可能な企業ネットワークを想像できます。そのため、デバイスはサブネット全体で検索可能でなければなりません (ただし、仕様ごとに TTL の対象となります)。
Wrt 3. 構成とメンテナンスの手間。
Wrt 4.それを行うための信頼できる方法はありますか? IPv6はどうですか?たとえば /28 スライスのグローバル アドレスを持つネットワークについてはどうでしょうか。
Wrt 5.無数のデバイスからのトリクルは、依然としてトレントに相当します...
参照: https://blog.sucuri.net/2014/09/quick-analysis-of-a-ddos-attack-using-ssdp.html
windows - 発信 SSDP ブロードキャストを調整する Windows SSDP 検出サービス
SSDP 検出要求をブロードキャストする Python アプリがあります。検出しようとしているデバイスが常に応答しているとは限らないことに気付きました。Wireshark を使用すると、一部のブロードキャストのみがネットワークに到達していることがわかりました。いくつかのトラブルシューティングの後、問題の原因を SSDP Discovery サービスに切り分けました。このサービスを無効にすると、パケット損失がなくなりました。また、SSDP (239.255.255.250) 以外のマルチキャスト アドレスを使用すると、問題も解決します。そのため、SSDP が発信 UDP ブロードキャストを抑制しているようです。これはなぜですか?おそらく、ブロードキャストを結合したり、トラフィックを制限したりしようとしていますか? Windows 7 を使用しています。OSX では問題は発生しません。
これは、パケット損失を示す簡単なテスト アプリです。両方のインスタンスが同じシステムで実行され、送信側インスタンスは毎秒パケットを送信し、受信側はテストで定義されたパケット数のギャップを報告します。
編集 (10/06/15): 私は問題の根本原因を突き止めたと思います。Windows SSDP Discovery サービスは、物理ネットワーク インターフェイスが 1 つしか構成されていない、またはオンラインになっているシステムでも、マルチキャスト パケットが送信されるインターフェイスと受信パケットが送信されるインターフェイスを定期的に循環させます。私のシステムには、1 つの有線イーサネット ネットワークと 2 つの仮想 VMware ネットワーク アダプターがあります (私は VM で実行していません。これらはホスト側にあり、有効になっていますが、使用されていません)。上記のユーティリティのソースを変更して、setsockopt(IP_MULTICAST_IF) を介してブロードキャストを送信するインターフェイスと、setsockopt(IP_ADD_MEMBERSHIP) を介してブロードキャストをリッスンするインターフェイスの構成をサポートするようにしました。次に、ユーティリティの 4 つのインスタンスを実行しました。1 つは INADDR_ANY で送信し、1 つは INADDR_ANY で受信し、さらに、VMware 仮想ネットワーク アダプタ (VMnet1 と VMnet8、どちらも独自の製造済み/仮想サブネットで事前構成済み) のそれぞれでリッスンします。INADDR_ANY レシーバー インスタンスでパケットが欠落し始めると、それらが VMware リスナーの 1 つに表示されます。これは、Windows SSDP Discovery サービスがマルチキャスト転送用に設定された既定のアダプターを循環させていることを証明しています。SSDP サービスが無効になっている場合、これは発生しません。ディスカバリー サービスは、すべてのネットワーク インターフェイスで SSDP メッセージをキャッチするためにこれを行っていると思いますが、システムの各インターフェイスに 1 つずつ、複数のソケットを持つだけでなく、これを達成するためにシステムの既定のマルチキャストを変更する必要がある理由は明らかではありません。INADDR_ANY レシーバー インスタンスでパケットが欠落し始めると、それらが VMware リスナーの 1 つに表示されます。これは、Windows SSDP Discovery サービスがマルチキャスト転送用に設定された既定のアダプターを循環させていることを証明しています。SSDP サービスが無効になっている場合、これは発生しません。ディスカバリー サービスは、すべてのネットワーク インターフェイスで SSDP メッセージをキャッチするためにこれを行っていると思いますが、システムの各インターフェイスに 1 つずつ、複数のソケットを持つだけでなく、これを達成するためにシステムの既定のマルチキャストを変更する必要がある理由は明らかではありません。INADDR_ANY レシーバー インスタンスでパケットが欠落し始めると、それらが VMware リスナーの 1 つに表示されます。これは、Windows SSDP Discovery サービスがマルチキャスト転送用に設定された既定のアダプターを循環させていることを証明しています。SSDP サービスが無効になっている場合、これは発生しません。ディスカバリー サービスは、すべてのネットワーク インターフェイスで SSDP メッセージをキャッチするためにこれを行っていると思いますが、システムの各インターフェイスに 1 つずつ、複数のソケットを持つだけでなく、これを達成するためにシステムの既定のマルチキャストを変更する必要がある理由は明らかではありません。
回避策は、シングルホームである他のすべての OS プラットフォームで正常に動作するマルチキャストを処理する従来の方法である INADDR_ANY に依存するのではなく、マルチキャスト送信およびリッスン用に構成するインターフェイスを明示的に設定することです。送信インターフェイスだけでなく受信側も明示的に設定する必要があることに注意してください。これは、ディスカバリ サービスによるデフォルト インターフェイスの循環が、デフォルト送信インターフェイスと、IP マルチキャスト メンバーシップ グループで受け入れられる受信パケットのインターフェイスの両方に適用されるためです。 .
upnp - M-SEARCH 送信後、SSDP レスポンスを継続的にリッスンする方法
ネットワーク上の Sat>IP サーバーを検索したいと思います。Sat>IP サーバーは、その存在を他の Sat>IP サーバーおよびクライアントにアドバタイズします。M-SEARCH メッセージを継続的に送信するのではなく、代わりにサーバーの NOTIFY メッセージをリッスンする必要があります。
デバイスのネットワーク設定を初期化した後、アクティブな Sat>IP サーバーが既に存在する場合、M-SEARCH メッセージを送信して応答を取得しています。しかし、M-SEARCH メッセージを送信した後、Sat>IP サーバーを開くと、応答が得られませんでした。
これが私のコードです。
この問題を解決するにはどうすればよいですか? どんな助けでも大歓迎です。
windows - Windows での Philips Hue のセットアップ
Windows 8.1 (64bit) で Philips Hue を設定しようとしています。ただし、次の Web サイトを参照しても何も表示されない理由がわかりません: https://www.meethue.com/api/nupnp
次のことも試しました(一部のページはwww2にあるため) https://www2.meethue.com/api/nupnp
今のところ、このチュートリアルに従うことはできません http://www.developers.meethue.com/documentation/hue-bridge-discovery
実際のところ、Windows を使用して Hue を制御し、その SDK を使用してコードを記述できる方法があるのだろうか? 設定するのに苦労します。
私はすでに自分の電話でそれを設定しており、正しく動作しています。
java - Android SSDP サービス検出
SSDP 検出を使用して、所有しているスマート デバイスの一部をスキャンする Java プログラムを実装しています。私が使用しているコードは、ローカル ネットワークに接続されている 10 台のデバイスのうち 2 台しか検出しません。その理由が理解できませんでした。
私の質問は、ローカル ネットワークにあるすべてのデバイスを取得できない理由です。
これは私が使用しているコードです
以下はいくつかの定数です
メインクラス
誰でもこの問題の解決策を提案できますか?
swift - GCDAsyncUdpSocket による DIAL 検出
GCDAsyncUdpSocket を使用して、ネットワーク上の DIAL デバイスを検出しようとしています。こちらで指定されているように、Netflix の公式 C++ クライアントを使用してデバイスを検出することに成功しましたが、Swift プロジェクトで C++ または Objective-C++ クラスを使用することは避けたいと考えています。これが私の発見クラスであり、ソケットが作成されて開かれていることを報告しますが、何も受信されません。私がどこで間違っているかを理解するのに十分なほどDIALに精通している人はいますか?
android - UPnP パケットが受信されない
UPnP 検索で見つかるカメラがあります。また、150 秒ごとに UPnP 検索と同じ応答を広告 (マルチキャスト) します。
UPnP検索またはマルチキャスト広告を聞くだけでカメラを識別できるAndroidアプリを作成しました。
マルチキャスト ソケットを作成し、あらゆるパケットをリッスンするだけでアドバタイズ リッスンを実現しました
今私の問題は、Asus Zenfone (Android バージョン 5.0) では正常に動作しますが、Lenovo A1000 (同じ Android バージョン) では失敗することです。
Lenovo A1000 は、Windows PC から SSDP パケットをキャプチャできます。問題は、カメラからのパケットのみです。
しかし、カメラからのパケットが破損した場合、Asus Zenfone ではどのようにキャプチャされるのでしょうか?
私の質問は、アンドロイドがアプリに到達する前にパケットをブロックすることですか?