問題タブ [scope-id]

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.

0 投票する
1 に答える
2125 参照

c++ - IPv6 ゾーン インデックスと scope_id

ゾーン インデックスは、sockaddr_in6 構造体の scope_id とどのように関連していますか?

機能はプラットフォームによって異なるようです。それらがどのように関連しているか知りたいです。たとえば、Windows にはSCOPE_ID 構造体(および 32 ビット値のみ) があります。Mac OSX には 32 ビット値しかありません。明らかに 32 ビット値が適していますが、正確にはどのように配置されているのでしょうか? それでも上位4ビットは「レベル」ですか?ネットワークバイトオーダーはこれにどのように影響しますか?

また、Windows では、IP アドレスで指定されたゾーン インデックス (例: FF80::1%1) は、前述の構造の下位 28 ビットに直接変換されると想定しています。番号ではなく名前を使用する Mac OSX ではど​​のように機能しますか (例: FF80::1%en0)。4 CC としてエンコードしますか? 同様に、Linux はおそらく 28 ビットに収まらない 4 文字を使用していることを思い出すようです。

それで、誰かがこの混乱を私に説明できますか?ネット上にはipv6に関する貴重な情報がほとんどないため、終了したら、これらすべてに関するチュートリアルを書く必要があります。

編集: scope_id はネットワーク バイト順ですか? recvfrom から返された scope_id を見ているところですが、リトルエンディアン順になっているように見えます...それは正しくありませんか?

0 投票する
1 に答える
3647 参照

python - Python でリンクローカル IPv6 TCP ソケットを接続するために %en0 サフィックスが機能しないのはなぜですか?

1 週間ほど前、StackOverflow の誰かが、IPv6 リンクローカル アドレスに接続するための Python コードが機能しない理由を尋ねました desired local-interface-name is) ターゲット IP アドレスのサフィックス。私は自分が話していることを知っていると思っていたので、答える前に自分の提案を実際にテストしませんでした (恥ずかしい!)。

今日、私は同じテクニックを自分自身で使用しようとしましたが、うまくいかないようです. :^( つまり、このコードは機能しません:

一方、次のコードは機能します (%en0 サフィックスの有無にかかわらず)。

...しかし、最後の引数に指定するスコープID整数を把握するために、あまり移植性のないコードを実行してローカルインターフェイスを反復処理する必要があるため、そのようにするのは好きではありませんリストを作成し、「en0」という名前のインターフェイスを見つけて、そのスコープ ID を抽出します。これは、必要以上に複雑なオーバーヘッドになります。

connect() が IP アドレスへの %en0 サフィックスを受け入れているとすれば、スコープ ID を決定するために実際にそれを期待どおりに使用しないのはなぜですか?

FWIW、私は MacOS/X 10.6.4 の下で Python 2.6.1 でテストしています。

0 投票する
3 に答える
11985 参照

facebook - Facebook アプリ スコープ ID で Facebook ユーザー ID を取得する

FacebookアプリのスコープIDから元のFacebook IDを取得することは可能ですか?

同じデータベースを共有する 2 つのアプリがあるため、ユーザーは 1 つのアプリにサインアップするだけで両方にログインできます。これは、Facebook が API を 1.0 から 2.0 に更新するまで機能していました。これで、各ユーザーはそれぞれに異なる fb スコープ ID を持つことになります。同じユーザー obj への fb id 参照を使用できなくなりました。

0 投票する
2 に答える
1039 参照

python - Python ipaddress.IPv6Address インスタンスのスコープ ID

私は現在、IPv6 リンクローカル アドレスを介してネットワーク通信を行う C++ ライブラリの Python ラッパーを作成しています。ライブラリを初期化するには、ネットワーク インターフェイスを選択する必要があります。これは、目的のインターフェイスのリンクローカル アドレスを介して行われます。

C++ 側では、ブーストaddress_v6 オブジェクトを使用します。Python 側では、ipaddress.IPv6Addressが完全に一致しているように見えました。

ただし、Python 側でインターフェイスのスコープ ID を指定する方法が見つかりませんでした。

エラーが発生します:

IPv6 リンクローカル通信は、スコープ ID なしではほとんど不可能です。

ここに何か不足がありますか、それとも IPv6 リンクローカル インターフェイス アドレスを文字列として指定する最良の方法はありますか?