この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Python公式ドキュメントのipaddress仕様を確認し、ホスト部が残ったCIDRをstrict=True/Falseで読み込んだときの違いをダミーアドレスだけで観察します。この記事作成時にはPython実行を行っていません。検証ステータス:📘 Python公式仕様確認済み・実行未確認
情報確認日:2026年10月3日。外部通信やネットワーク設定変更は行いません。
192.168.1.10/24 のようにホスト部を含む表記を「ネットワーク」として受け取ったとき、入力ミスとして止めるのか、192.168.1.0/24 へ正規化するのかはツール設計で重要です。
strict=Trueで止める
import ipaddress
ipaddress.ip_network("192.168.1.10/24", strict=True)
ホスト部が設定されているため、network addressとして厳密には受け付けず ValueError になります。
strict=Falseならどうなるか
import ipaddress
net = ipaddress.ip_network("192.168.1.10/24", strict=False)
print(net)
print(net.network_address)
print(net.broadcast_address)
入力をnetworkへ正規化して扱えます。
flowchart TD
A["192.168.1.10/24"] --> B{"strict?"}
B -->|True| C["ValueError"]
B -->|False| D["192.168.1.0/24へ正規化"]
1か所変える
192.168.1.0/24 を渡して、strict=Trueでも通ることを確認します。次に 10.0.0.1/30 へ変え、どのnetworkへ正規化されるか予想してから実行します。
仕事で使うなら
設定値の検証では「入力ミスを黙って直してよいか」を先に決めます。人が入力したnetwork定義を厳密に検査するならstrict=True、IPとprefixから所属networkを求める用途ならstrict=Falseが合う場合があります。

