IPAMやDHCPサーバーを実装するとき、IPアドレスを機械的に生成するために、IPアドレスの計算をする事があります。 例えばIPAMがラックやデータセンターから機械的にIPアドレスを割り当てたり、DHCPサーバーが連番のIPアドレスを割り当てたりします。 この記事ではシェルスクリプトでIPアドレスを計算する方法を紹介します。
IPアドレスと数値の変換
IPアドレスを計算する上で欠かせない操作が、IPアドレスと数値の相互変換です。
IPv4アドレスは長さ4のバイト列に過ぎませんが、通常は192.168.0.1
のように人間の扱いやすい文字列で表現します。
一方IPアドレスを計算するには、IPアドレスをバイト列や32ビット数値などの、計算機で扱いやすい形に変換します。
IPアドレスを数値として扱えると、数値演算でIPアドレスを計算したりネットワークアドレスを求めやすくなります。
実はPythonは標準で、IPアドレスと数値の相互変換を簡単にできます。
import ipaddress
ipaddress.ip_address('192.168.1.200') + …