3

IP で許可/制限する機能を必要とするソケット サーバーを作成しており、IPv4 と IPv6 の両方と互換性を持たせようとしています。

私は IPv4 の原則をかなりよく理解しています。たとえば、http://blogs.msdn.com/b/knom/archive に基づいて、すべての 192.168.0.* アドレスに対して 192.168.0.0/255.255.255.0 ケータリングを許可できます。 /2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx .

しかし、これは IPv6 ではどのように機能するのでしょうか? つまり、そのプロトコルで範囲を処理するにはどうすればよいですか?

4

1 に答える 1

3

慣例により、IPv6 は IPv4 のようなサブネット マスク形式を使用しません。しかし、それでもそのように視覚化できない理由はありません。

IPv6 の /64 に相当する「サブネット マスク」はffff:ffff:ffff:fffff:0:0:0:0. 誰もあなたが何を意味するのか分からないので、IPv6 ユーザーにそれを引用しようとしないでください。また、それを IPv6 構成に貼り付けようとしないでください — 人々は /64、/48、/32 などのプレフィックスしか使用しません (/96 などの /64 より小さいものはめったに使用されず、LAN では公式に非推奨です)。環境。)

これは、IPv6 プレフィックスを理解するのに役立つように作成した便利な ASCII アート チャートです。

2001:db8:1000:2000:3000:4000:5000:6000/32
<--net--><-------------------host---->

2001:db8:1000:2000:3000:4000:5000:6000/48
<--network--> <--------------host---->

2001:db8:1000:2000:3000:4000:5000:6000/64
<--network-------> <---------host---->

2001:db8:1000:2000:3000:4000:5000:6000/96
<--network------------> <----host---->

うまくいけば、上記は IPv4 サブネットを視覚化するのと同じ方法です (正直なところ、ほとんど同じです)。実際、IPv6 は 16 進数を使用するため、頭の中で IPv6 を計算する方が少し簡単です。したがって、4 で割り切れるプレフィックスに固執すると、サブネットをニブル (数字) 境界で分割することになります。これは、IPv4 ではできないことです。 !

私の回答には C# 固有の情報が含まれていないことを認めます。それにもかかわらず、プレフィックスの長さを指定することで、何を探すべきかについて正しい軌道に乗るはずです。

于 2011-01-22T12:57:06.467 に答える