質問

次の形式で IPv6 アドレスを使用しています。

FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

内部的には、それらを配列に保存します。

TIp6Bytes = array [0..15] of Byte;

加算、除算、乗算など、さまざまな方法で IPv6 アドレスを操作する必要があります。誰かがこれを行う良い方法を提案できますか?

Delphi 2009 を使用していることを言及すべきだったと思います。

役に立ちましたか?

解決 2

多くの提案を試してみましたが、私のニーズをすべて満たし、バグのないライブラリを見つけることができませんでした。もう少し詳しく検索したところ、Alex Ciovanu による比較的新しいライブラリを見つけました。これは BigInteger (および Big Cardinals) をシームレスに実行し、通常の整数や基数などを操作するのとほぼ同じ方法で BigIntegers (および Big Cardinals) を操作できるようにします。

BigInteger と同様に、このライブラリは非常に便利な機能を多数提供します。Readme より:

  • 一連の一般的なコレクションクラス(リスト、辞書、ハッシュセットなど)。
  • 日付/時刻機能はすべていくつかの構造に組み合わされています(.NETのデータタイム構造に相当する)
  • 各組み込みのDelphiタイプ(コレクションのデフォルトとして使用)のデフォルト「サポートクラス」のセットを定義するタイプサポートコンセプト。カスタムデータ型には、カスタム「タイプサポート」クラスを登録できます。
  • BigCardinal および BigInteger データ型。
  • Delphi のスマート ポインター

ライブラリは積極的に開発されています。実際、作者は私が見つけた小さなバグを 1 日以内に修正しました。

ライブラリについて詳しくは、こちらをご覧ください。 アレックスの ブログを作成し、DeHL をダウンロードします Googleコード.

他のヒント

ジェスKlinkeはパスカルここのBIGNUMユニットを書きました。

私は個人的にこのライブラリを使用していない

免責。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top