問題タブ [ipv6]
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# - HttpContext IP の問題
を使用すると問題が発生しHttpContext.Current.Request.UserHostAddress
ます。同じコンピューターとナビゲーターから呼び出すと、「192.168.0.17」(IPv4) が返される場合と「fe80::99be:a05d:7938:1c30%8」(IPv6) が返される場合があります。
常にIPv4を返すにはどうすればよいですか?
c++ - getaddrinfo()は、IPV6アドレスとして::1のみを返します。
getaddrinfo()を使用して、ローカルマシンに割り当てられたすべてのIPアドレス(IPv4とIPv6の両方)を返します。XPでは、getaddrinfo()は::1のみを返すことがわかります
(2 XPマシンにIPV6スタックをインストールし、IPV6アドレスを構成して、両方のピアにpingを実行しました。これらは正常に機能しています。Ipconfigがすべて正常に機能していることを確認します。)
ipv6 - 2 つの IPv6 アドレスが等しいかどうかをどのように判断しますか?
管理者が有効な IP アドレスを指定して、そこから Web サービス リクエストを作成できるようにするアプリケーションがあります。構成済みの IP アドレスを取得して、着信要求と比較するだけです。2 つの IPv4 アドレスを比較するのは簡単ですが、2 つの IPv6 アドレスを比較するのも同様だと思いました。
しかし、IPv6 アドレスがもう少し複雑であることに気付いたとき、私のネットワークへの無知が露呈し始めました。私が気づいた 1 つの問題は、マシンの IP アドレス (VMWare コンソールが示す IP アドレスを表示していたもの) と、Web 要求からの IP アドレス ( HttpContext.Current.Request.UserHostAddress
.NET 内) を比較すると、そのうちの 1 つが次のように終わっていることに気付きました。 %10 と別の %11:
- ipconfig の表示: fe80:8179:5576:c6d0:8b16%11
- UserHostAddress の表示: fe80::8179:5576:c6d0:8b16%10
唯一の違いは %10 と %11 です。
また、IPv6 アドレスが「/」で終わり、その後に 2 桁の数字が続くことも確認しました。比較を行うときに、これらの最後の 3 桁 (存在する場合) を無視する必要がありますか? もしそうなら、私が探す必要がある有効な別のエンディングは何ですか?
- - - - - - 編集 - - - - - - -
提供された回答に基づく私の解決策は次のとおりです...
「スクラブされた」IP アドレスを保存し、それを「スクラブされた」IP アドレスと比較するだけです。ここで .NET を使用して、IP アドレスをスクラブします。パフォーマンスの観点からは最高ではありませんが、機能します。の比較をしたいのGetAddressBytes()
ですが、 を使用しているDictionary
ため、独自の を作成するという余分な手順を実行しないことにしましByteComparer
た。
regex - IPv6アドレスをPerl正規表現と一致させるにはどうすればよいですか?
したがって、マスクがある場合とない場合があるipv6アドレスを照合する必要があります。残念ながら、ライブラリを使用して文字列を解析することはできません。
この場合、マスクビットは十分に簡単です。
難しい部分は、ipv6アドレスのさまざまな形式です。:: beef、beef ::、beef::beefなどと一致する必要があります。
更新:私はもうすぐそこにいます。
私は、この場合、perlの正規表現の使用に制限されています。
c# - IIS Request.UserHostAddressは、IPV6が無効になっている場合でも、IPV6(:: 1)を返します
ネットワークカードのプロパティセクションで、Windows Server 2008で、IPV6を無効にし、IPV4のみを有効にしました。
ただし、ASP.NETでは、Request.UserHostAddressはIPV6アドレスである'::1'を返します。
誰かがIPV4に戻す方法を知っていますか?
.net - WCF IPv6 エンドポイント
EPoS 端末用の Windows アプリで Peer 2 Peer を WCF と共に使用する可能性を調査しています。
アプリは、ローカル ネットワーク内の複数の PC に配置されます。PC ごとにアプリのインスタンスが 1 つだけ存在します。
私の現在の考えでは、アプリが起動してピア メッシュに参加し、メッシュに参加すると、端末 ID と IPv6 アドレスを含む「ハートビート」メッセージを定期的に叫びます。
メッシュに参加する他の端末は、これらのハートビートを受信し、ネットワーク内の端末の独自のリストを維持します。
アプリ内のアクションには、ネットワーク上の特定の端末にアクセスする必要があります。したがって、アプリは端末 ID を IP アドレスに解決し、net.tcp 経由でサービスにアクセスするための Uri を生成できます。
リンク ローカル アドレスを使用してサービス エンドポイントを公開しました
エンドポイントをセットアップするための文字列は、たとえば次のようになります。
"net.tcp://[fe80::250:56ff:fec0:8%4]:5555/GSS-POS/PrintingService"
ただし、このサービスにアクセスしようとすると、ホストに到達できないというエラーが表示されます。
TCP エラー コード 10065: 到達不能なホストに対してソケット操作が試行されました fe80::290:5ff:fe01:6303%4:5555
これは、IPv6 アドレッシングに関する私の限られた知識によるものだと認識しています。エンドポイントにどのアドレスを使用すればよいですか (リンクローカル IPv6 アドレスを使用しています)? それとも、私の全体的なコンセプトに欠陥がありますか?
ティア、
サイモン
ipv6 - IPv6マルチキャストアドレス:グループIDフィールドは実質的に112ビットまたは32ビットですか?
IPv6マルチキャストアドレスのグループIDを選択するためのルールを理解しようとしていますが、RFCに多少の一貫性がないようです。たとえば、RFC 2373セクション2.7では、この図が示されています。
...しかし、セクション2.7.2では、次のように示されています。
だから私の質問は、グループIDフィールドの上位80ビットは使用可能かどうかです。それらが使用可能である場合、それは特定の状況下でのみですか(たとえば、非イーサネットネットワークテクノロジーを使用している場合)。イーサネットLANを介してマルチキャストするときにこれらのビットを設定すると、どのような問題が発生する可能性がありますか?
c++ - C++ を使用した IPv6 アドレスの比較演算
IPV6アドレスには16バイトがあり、C ++に保存するデータ型ではないため、IPV6アドレスを保存し、IPv6アドレスと比較したかったので、その方法を教えてください
c++ - サードパーティのipv6トンネルを使用しないWindowsピアツーピアGlobal_Group
私は、Micosoftのピアツーピアグループライブラリを使用するピアツーピアアプリケーションを開発しようとしています。私の仕事は、msdnでのグループチャットアプリケーションの作成に基づいています。これはローカルグループで正常に機能し、gogo6クライアントなどのサードパーティトンネルアダプタがインストールされている場合はグローバルグループでも機能します。しかし、私が読んだいくつかのことから、Windowsに組み込まれているTeredoトンネルアダプターを介して物事を機能させることができるはずです。
さまざまなことを試しましたが、gogo6トンネルを実行せずにipv6のみのサイト(ipv6.google.comなど)にアクセスできるようになりましたが、この方法ではグローバルグループ内の他のピアを見つけることができないようです。
Windowsファイアウォールのアプリケーションにトラフィック(エッジトラバーサルを含む)を許可するルールを追加し、着信トラフィックと発信トラフィックに対して次のポートも開きました。
- tcp 3587
- udp 3540、1900
私が読んだサンプルからは、うまくいくはずですが、うまくいきません。アプリケーションでteredoを使用するには、具体的に有効にする必要があることを読みました。私がこれを行うために見つけた唯一の方法は、ソケットを開くときですが、グループAPIがすべてを実行するため、それを制御する方法はわかりません。
python - python mechanize / urllib2にAリクエストのみを使用するように強制しますか?
これは関連する質問ですが、mechanize / urllib2に答えを適用する方法を理解できませんでした:PythonhttplibライブラリにAリクエストのみを使用させる方法
基本的に、この単純なコードを考えると:
これにより、wiresharkは次のように言います。
これは5秒の遅延です。
システムのどこでもIPv6を有効にしていない(gentooでコンパイルされているUSE=-ipv6
)ので、PythonにIPv6ルックアップを試す理由はないと思います。
上記の質問は、AF_INET
素晴らしいサウンドのソケットタイプを明示的に設定することを提案しました。urllibを強制する方法や、自分で作成したソケットを使用するように機械化する方法がわかりません。
編集:他のアプリにも遅延があったため、AAAAクエリが問題であることがわかっています。また、ipv6を無効にして再コンパイルするとすぐに、問題は解決しました...引き続きAAAAリクエストを実行するPythonを除きます。