問題タブ [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.
java - プリミティブのキャストとバイトウェイのトリミング
アルゴリズムの一部について意見やアドバイスを求めたいと思います。
対。
基本的に、キャストにパフォーマンスの違いがあるのか 、それともより大きなByteBufferを使用する方が良いのかを知りたい.
ありがとうございます。それでは、お元気で、
マレク
bind - 特定のインターフェイスでソケットを開き、IPv4とIPv6の両方のトラフィックを受信する方法
IPv4を使用すると、bind()を特定のアドレスにバインドして、パケットの受信に使用されるインターフェイスを選択できます(場合によっては、送信にも使用されますが、それは重要ではありません)。
デュアルスタックIPv6/IPV4マシンでは、この問題が発生します。6ソケットを作成し、それを使用して4トラフィックを受信できますが、特定のインターフェイスにバインドする場合は、バインドするIPアドレスを選択する必要があります。
IPv6アドレスにバインドすると、すべてのIPv4トラフィックが除外され、その逆も同様です。
特定のインターフェイスからIPv4とIPv6の両方のトラフィックを受信するにはどうすればよいですか?
java - アプレットがIPv6経由でロードされたかどうかを判断する方法
同じホストで実行されているサービスに接続するアプレットがあります。アプレットをホストするWebサーバーは、アプレットが接続するサービスと同様に、IPv4とIPv6の両方でリッスンします。
問題は、アプレット内のwithから取得できるのは、ページURLまたはコードベースURLだけであるということです。URLから、ブラウザによってIPv4またはIPv6に解決されたかどうかを検出できないため、アプレットがIPv6経由でロードされ、そのURLを使用して、サービスを検索するサーバーがサンドボックスに失敗することをアプレットに通知します。デフォルトではIPv4アドレスに解決されるため、ルールが適用されます。
頭に浮かぶ唯一の解決策は、アプレットに署名して任意のサーバーへの接続を要求できるようにすることですが、私はもっと簡単な解決策を望んでいました(証明書を購入したり、アクセスするすべてのシステムのトラストストアにカスタムCAを追加したりする必要はありません)サイト)。
誰もがより良い解決策を得ました。
.net - ipv4およびipv6アドレス用の標準の.NETデコーダーはありますか?
かなりシンプルなクライアントサーバーネットワークアプリを書きたいと思います。私は純粋なIPv4ネットワークのみを使用していますが、コードを将来にわたって利用できるようにすると便利です。WCFの予備調査により、セットアップが非常に複雑で、理解しにくいことがわかったため、おそらくTcpListener/TcpClientを使用します。
クライアント側の場合、.NETは、IPv4またはIPv6アドレス(IPv4アドレスにポート番号が含まれる)を含む文字列を自動的にデコードする機能を提供しますか?ドメイン名を解決できる場合はボーナスポイント。
サーバー側では、IPv6はポート番号を使用しないと聞きましたが、リッスンするポートに相当するものは何ですか?IPv4ポート番号の文字列をIPv6に相当するものと区別する標準的な方法はありますか?気にしないでください。IPv6サービスには、IPv4サービスと同じように16ビットのポート番号があります。
python - proc のみを使用してローカル ネットワーク インターフェイス アドレスを取得しますか?
procのみを使用して、すべてのネットワーク インターフェイスの (IPv4) アドレスを取得するにはどうすればよいですか? 大規模な調査の結果、次のことがわかりました。
ifconfig
を使用しますSIOCGIFADDR
。これには、開いているソケットと、すべてのインターフェイス名に関する事前の知識が必要です。また、Linux のマニュアル ページにも記載されていません。proc
が含まれています/proc/net/dev
が、これはインターフェース統計のリストです。proc
これは/proc/net/if_inet6
まさに私が必要とするものですが、IPv6 の場合です。- 通常、インターフェイスは で簡単に見つけることができますが
proc
、実際のアドレスは、明示的に接続の一部である場合を除いて、ほとんど使用されません。 - と呼ばれるシステム コールがあり
getifaddrs
ます。これは、Windows で見られると思われる非常に「魔法の」機能です。BSDにも実装されています。ただし、あまりテキスト指向ではないため、非 C 言語からの使用は困難です。
linux - 受信したUDPパケットの宛先アドレスを取得します
UDPパケットを受信したら、返信先のパケットの送信に使用したアドレスで送信者に応答する必要があります。
このrecvfrom
呼び出しにより、送信者のアドレスを取得できますが、受信したパケットの宛先アドレスを取得するにはどうすればよいですか。これは、ローカルホストのインターフェイスの1つのアドレスと一致する必要があります。
regex - regexp を使用した IPv4 アドレスの検証
IPv4 検証用の効率的な正規表現を取得しようとしてきましたが、うまくいきませんでした。ある時点で私はそれを持っていたように見えましたが(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}
、奇妙な結果が得られました:
これがすでに尋ねられて回答されているかどうかを確認するために検索を行いましたが、他の回答は、1〜3個の数字の4つのグループを決定する方法を単に示しているように見えるか、私にとってはうまくいきません.
python - Python で IPv4 パケット ヘッダーを作成する
私のより大きなプロジェクトでは、IPv4 ネットワーク パケットの作成から始める必要があります (シミュレーション用)。
同じために、渡されたデータから source ip 、 dest ip 、およびすべての必要なフィールドを持つヘッダーを作成する関数を作成する必要があります
そのためには、あなたが私を正しい方向に導く必要があります。
まず、IPを32ビットで保存する必要があるため、文字列「192.168.2.1」がある場合、それをバイトに変換する最も効率的な方法と、それも32のサイズですか??
また、最初に version = 4 および sourceip と dest ip のようなものを使用して通常のクラスを作成する場合、次のヘッダーのようにオブジェクトの位置を持つバイト配列に直接変換する方法があります
どうすればいいのか教えてください....
networking - cidr表記でのサブネット化
CIDR表記のネットワークアドレスのサブネット化に問題があります。誰かが説明してもらえますか?たとえば、この質問をどのように解決できますか?
ネットワークアドレス197.23.37.128/25が4つのサブネットに分割されている場合は、CIDR表記でサブネットアドレスを指定します(最初と最後のサブネットの両方を使用できます)
どんな助けでもいただければ幸いです
python - Pythonrawソケットから受信したパケットで2バイトがスワップされました
私のPythonプログラムは、rawソケットからICMP宛先到達不能メッセージを受信しています。ソケットは次のコードで作成されます。
ICMP宛先到達不能メッセージには、元のパケットの一部のコピーが含まれます。私が経験している問題は、埋め込まれたIPv4ヘッダーの2バイトの合計長フィールドが、ソケットから受信するときにバイトが交換されることです。これが原因で、私のプログラムのチェックサムチェックに失敗します。パケットは次のコードで受信されます。
チェックサムテストが失敗していることに気付いたとき、tcpdumpを使用してパケットを検査しました。次に例を示します。
次に、Pythonコードからパケットを印刷しました。これは、tcpdumpの例からの同じパケットです。
埋め込まれたヘッダーの全長フィールドは、2行目の最後の2バイトです。tcpdumpからの0054と私のプログラムからの5400。外部IPヘッダーのtotal-lengthフィールドも間違っています(tcpdumpの0070に対して5c00)。
私は走っています...
Python 2.6.1(r261:67515、2010年6月24日、21:47:49)[GCC 4.2.1(Apple Inc.ビルド5646)] on darwin
tcpdumpからのICMP宛先到達不能パケットのチェックサムフィールドは正しいです。fcfeの値があります。これは、outIPヘッダーのないパケットです。
私を混乱させるのは、全長フィールドのみがネットワークバイトオーダーに対して修正されることです。他のマルチバイトフィールドは変更されず、Pythonプログラムと同じように出力されます。たとえば、全長の後の2バイトは、tcpdumpと印刷出力の両方でc2eaの値を持つ識別フィールドを構成します。チェックサムをチェックする目的でどのフィールドを交換する必要があるかをどのように判断できますか?