0

現在、IP アドレスとサブネットマスクを取得し、指定された ipv4 がプライベート/パブリックかどうかをチェックする ac 関数があります。

次のロジックで matchsubnet を実行します。

(local ipv4 address && local subnetmask) == (given ipv4 && given subnetmask)

ipv6 用に記述できるロジックは何ですか? IP とサブネットのプレフィックスを受け取る関数を作成できます。ローカル サブネット プレフィックスを取得できますか?

4

1 に答える 1

0

2 つのホストが同じサブネット上にあるかどうかを判断するために、アドレスとプレフィックス長 (サブネット マスク) の両方を取得します。

プレフィックスの長さが異なる場合、それらは同じネットワーク上にありません。

プレフィックスの長さが同じである場合は、その長さ (おそらく 64 であるため、64 と仮定します) を取得し、両方のアドレスの最初の 64 ビットを互いに比較します。それらが同じである場合、それらは両方とも同じネットワーク上にあります。

プレフィックスにないビットを作成することで、IPv4 の場合と基本的に同じです。128 個のアドレスを使用すると、一度に 4 ビット (16 進表記を比較) または一度に 8 ビット (解析されたバイトを比較) を比較するループとして実装する方が簡単かもしれません。

于 2016-06-04T08:32:53.713 に答える