IPアドレスを格納するための整数に変換する方法については誰もが話しますが、このアプローチが伝播する実際の理由は何ですか? 利点と欠点は何ですか?IPを格納する目的でIPを整数に変換するのはなぜですか?
短い:なぜ私はそれを行う必要がありますか?
IPアドレスを格納するための整数に変換する方法については誰もが話しますが、このアプローチが伝播する実際の理由は何ですか? 利点と欠点は何ですか?IPを格納する目的でIPを整数に変換するのはなぜですか?
短い:なぜ私はそれを行う必要がありますか?
整数には文字列よりもスペースが少なくてすみますが、主なものは強調したいだけです。IPアドレスは実際には数字です。
私たち人間は、 "10.0.0.1"や "2002 :: 2"のようなIPアドレス文字列の表現を好みます。実際、IPに関するほとんどの操作は厳密に数値です。たとえば、などのIP範囲(最初< IP <最後を)チェックし、(IP &マスク)をマスキング
だから、我々は整数型に変換するだけの数の文字列表現のように( "123" - > 123)、 IPの文字列表現は整数形式( "10.0.0.1" - > 0x0A000001または167772161)に変換する必要があります。
私はあなたに同意します。 IPアドレスは整数です(整数の定義ですが、しばしばプログラミング言語の整数定義に合致しません)。強く反対する人がいます(コメント@ https://stackoverflow.com/q/45067655/3745413を参照)。 –
今日の世界では、追加の5バイトのようなプラスは本当に重要ではありません。しかし、私はあなたが原則としてそれを指摘したことを理解しています。 – Kapparina
@Kapparinaはあなたが持っているIPの数に依存します;接続(フロー)のデータベースであれば、それらの余分なバイト数は何百万(何十億)に達するでしょうか?同じIPの文字列表現は異なる場合があります。たとえば、「10.0.0.1」は基本的に「010.000.000.001」と同じです。したがって、すべての。*。*接続を選択するには、可能な異なる表現を考慮する必要があります。集計する。 IPを文字列として格納する利点はありませんが、技術的な制限があります。 –
IPアドレスを正しく並べ替えて数学を行うことができるようにする。パケットヘッダーでは、IPv4アドレスは32ビットの整数で、IPv6アドレスは128ビットの整数です。ネットワークデバイスは、それをそのように使用します。 –