問題タブ [ipv4]
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.
sql-server - SQL Server の単一の列に IPv4 または IPv6 の両方を格納する方法は?
またはを使用する必要がありますbinary(16)
かvarbinary(16)
?
getAddress()
in java.net.InetAddress
(Java) またはSystem.Net.IPAddress
(C#) を使用してとbyte[]
の両方の表現を取得できることはわかっています が、 ieを のフィールドに挿入する必要がある場合、パディングなどについて心配する必要がありますか?IPv4
IPv6
IPv4
binary(4)
binary(16)
SQL Server
c# - C# での IPv6 から IPv4 への相互変換
Web サーバーが受信した以前の HttpRequest オブジェクトから収集した IPv4 形式の IP のリストがあります。Ipv6形式でIPアドレスを提供するJavaアプレットがあります(JavaアプレットはIPアドレスとともに一連のデータを返します)。アプレットから返された IP がリストの項目と一致するかどうかを確認する必要があります。
IPv6 と IPv4 のフォーマットを相互変換するにはどうすればよいですか?
私の Web アプリケーションはASP.Net C#で構築されています
編集
ここに私が直面している問題があります。Java アプレットはクライアントから一連の IP を返しますが、これはクライアント マシンにあるネットワーク カードの数に依存すると思われます。
これに伴い、ASP.Net HTTPRequest オブジェクトから IP アドレスを取得します。Web サイトへの接続に実際に使用された IP を特定し、いくつかのタスクを実行する必要があります。
問題は、Javaapplet から IPv6 形式の IP を 1 つしか取得しないことがありますが、HTTPRequest オブジェクトから取得した IP は IPv4 形式であるため、比較が失敗することがあります。
c - 16 進数 (ベース 16) から 10 進数を ip6 /proc/net/tcp6 に渡そうとしています
ファイル/proc/net/tcp6の内容を読んでいます
そして、そのip6の表記を「0::1」のように変換しようとしています
以前は ipv4 y で次の方法を使用していました。
しかし、ipv6 では /proc/net/tcp6 の内容が大きくなり (33 16 進文字)、おそらく sockaddr_in6 を使用する必要がありますが、変数 sin6_addr.s6_addr は配列であり、単一のログ符号なし int (sin_addr.s_addr など) ではありません。
だから履歴書に。私はこれを通過しようとしています
のようなものに
編集..
うーん、ex を 16 桁の ex に分解し、sin6_addr.s_addr の配列にフィードすると、おそらくそうなるでしょう。1F00C80A = 10.200.0.31 (ntop 関数を通過)
java - Inet4Address と Inet6Address の両方を同時に使用したい Java アプリケーション
ソケットを介して 2 つの別々のマシン上の 2 つの異なるサーバーに接続する必要がある Java アプリケーションがあります。一方のサーバーは IPv4 接続をリッスンするように構成され、もう一方のサーバーは IPv6 接続をリッスンするように構成されています。
ここで、「host1」は IPv4 接続をリッスンするサーバーのマシン名であり、「host2」は IPv6 接続をリッスンするサーバーのマシン名であるとします。次のように、各サーバーへのソケット接続を作成するにはInet4Address
、「host1」用と「host2」用の を取得する必要があります。Inet6Address
ただし、JVM はデフォルトで、後方互換性の理由から、IPv6 アドレスよりも IPv4 アドレスを使用することを優先します。したがって、上記のコードでは、「host1」への最初の接続試行は成功しますが、「host2」への 2 回目の接続試行は失敗しInetAddress.getByName("host2")
ます。Inet4Address
Inet6Address
IPv4 よりも IPv6 アドレスを優先するようにシステム プロパティを true に設定できることは理解していjava.net.preferIPv6Addresses
ますが、これにより、「host2」への 2 回目の接続試行は成功しますが、「host1」への最初の接続試行は失敗しInetAddress.getByName("host1")
ます(!)。のInet6Address
代わりにInet4Address
。
システム プロパティjava.net.preferIPv6Addresses
は 1 回だけ読み取られるため (InetAddress の 212 ~ 218 行を参照)、値を true に設定した後に値を false に戻しても効果はありません。
では、この場合どうすればよいのでしょうか。これはよくある問題のように思えるので、すでにそれを行う方法があるに違いありません。
InetAddress.getByAddress()
もちろん、代わりに各マシンの IP アドレスを明示的に使用および提供して、 Inet4Address
andを取得するInet6Address
こともできますが、本当に必要でない限り、これを実行したくありません。他の解決策をお願いします。
ああ、問題が発生した場合に備えて、Java 1.6.0_19 を使用しています。
ありがとう!
data-structures - IPv6 ルックアップ データ構造
パトリシア トライは、IPv4 割り当て/割り当てを格納し、ルックアップを実行するための、よく知られた推奨されるデータ構造です。
これは IPv6 アドレスにも当てはまりますか? 余分な96ビットに対応するために、より深く/より高くしようとしていますか?トライはまだパトリシアですか、それとも別の基数のトライですか?
java - Java:URL.openStream()-IPv4を使用
デフォルトでurl.openStream();
はIPv6を使用します。私の学校のサーバーはIPv6をサイレントにブロックします。これによりurl.openStream();
、3分15秒間ハングします。url.openStream()でデフォルトでIPv4を使用する方法はありますか?
php - PHP: MySql に IP を保存する適切な方法と、何百万行もの IP を検索する最も速い方法
inet_aton を使用して、IPv4 アドレスを「int unsigned」列タイプに格納しています。[私はこれを正しく行っていますか?また、「符号なし」を使用する必要がありますか?] この特定の列にもインデックスが付けられています。テーブル全体に同じ IP を含む何百万もの行と複数の行があるため、これらの行を検索する最速の方法は何ですか?
..または、これについて間違った方法で行っていますか?
ipv6 - omnet++用のIPv6からipv4へのモジュール
2つのネットワークのシミュレーションにomnet++を使用しています。1つはIPv6を使用し、もう1つはipv4を使用します。omnet++ですでに利用可能なIPv6からIPv4へのNATモジュールがあるかどうか知っていますか?今のところ何も見つかりませんでしたし、一から書くのは簡単なことではありません。
ありがとう。
windows - ユーザースペースのWindowsアプリからネットワークにIPパケットをルーティングする簡単な方法はありますか?
私は、リモートPCからIPパケットを受信するUSBデバイスを含むプロジェクトに取り組んでいます。リモートPCにIPアドレスを割り当てます。私はいくつかの方法で生のIPパケットを送信することを試みてきました:
1-rawソケット:pingは正常に機能し、tcpの送信に問題があります
2-tun / tap W32:pingを送信してphyイーサネットデバイスに返すのに十分な動作をすることができましたが、ドライバーGUIDでReadFile(...)を使用して読み取ることができませんでした。
3-winpcap:pingは機能し、tcpがwiresharkに表示されます(したがって、PCを離れると思います)が、synにackが表示されることはありません。また、私がackを取得した場合、WindowsTCPスタックが最初に送信するのではないかと心配しています。
私たちの目標は、クライアントPCからネットワークへの透過的なパススルーになることです。クライアント<-wrappedippacket-> [device] <-wrapped ip packet-> WinPC <-IP-> IpNetwork
私がこれを間違えている可能性は、これはもっと簡単なはずだと思われます。
私は、Windowsがこのための理想的なOSではない可能性があることを認識していますが、OSを制御することはできません。
前もって感謝します
networking - ローカル ネットワークでピアを検索しています
ローカル ネットワークで同じアプリケーションを実行しているホストを検出できるようにする機能をプログラムに実装したいと考えています。これを行うには、プログラムで UDP ソケットを開き、アドレス 224.0.0.1 (IPv4 を使用する場合) または ff02::1 (IPv6 を使用する場合) でマルチキャスト グループに参加します。次に、このネットワークにログインしたことを他のホストに通知します。私の考えによれば、2つの質問があります。
- これを行うのは正しい方法ですか、それともより良い解決策がありますか?
- ローカル ネットワーク (ホット スポットなど) でマルチキャスト通信を使用する場合の一般的なポリシーは何ですか? 通常は可能ですか、またはほとんどのルーターがマルチキャスト通信をブロックするか、まったくサポートしていませんか?
Linux 用の C++ でアプリケーションを開発しています。将来的には、C# で Windows 用のバージョンを作成するつもりです。