Python 検証 IP アドレス
- Python で IP アドレスを検証する
-
ipaddress
モジュールを使用して Python で IP アドレスを検証する -
Python で
RegEx.search()
メソッドを使用して IP アドレスを検証する - Python で IP アドレスを手動で検証する
IP はインターネット プロトコルの略で、インターネットに接続されているすべてのコンピューターに割り当てられる一意のアドレスです。 IPv4
と IPv6
という 2つのバージョンの IP アドレスがあります。
IPv4 はドット付き 10 進数表記で表され、4つのオクテットで構成され、各オクテットには 0 ~ 255 の範囲の数値が含まれます。IPv6 アドレスには、4つの 16 進数の数字の 8つのグループが含まれ、それぞれが 16 ビットを表します。
グループはコロン (:
) で区切られます。 このガイドでは、IPv4 アドレスを検証します。
Python で IP アドレスを検証する
IP アドレスの検証とは、入力 IP が有効かどうかを確認することを意味します。
例えば:
Input: 192.168.52.124
Output: Valid IP address
Input: 656.1.2.3
Output: Invalid IP address
ipaddress
モジュールを使用して Python で IP アドレスを検証する
ipaddress
は、タイプ (IPv4 または IPv6) に基づいて IP アドレスをチェックおよび分類するために使用される Python のモジュールです。 また、算術演算、比較などのさまざまな演算も実行します。
このモジュールには、IP アドレスを検証する ip_address()
という名前のメソッドがあります。 この関数は文字列 IP を入力として取り、文字列 IP を IPv4 または IPv6 アドレスのオブジェクトに正常に変換できれば、入力された IP アドレスが有効であることを意味します。
そうしないと、IP が IPv4 または IPv6 アドレスのように見えないという値エラーが発生します。 次のコードで ipaddress
モジュールをインポートし、コード全体を try-except
ブロックに記述しました。
IP が有効な場合、例外は発生しません。そうでない場合、値エラーの例外は except
ブロックによって処理されます。
ケース 1: 有効な IP アドレスの場合
# Python 3.x
import ipaddress
try:
ip = ipaddress.ip_address("192.168.1.1")
print("Valid IP Address")
except ValueError:
print("Invalid IP Address")
出力:
#Python 3.x
Valid IP Address
ケース 2: 無効な IP アドレスの場合
# Python 3.x
import ipaddress
try:
ip = ipaddress.ip_address("992.168.1.1")
print("Valid IP Address")
except ValueError:
print("Invalid IP Address")
出力:
#Python 3.x
Invalid IP Address
Python で RegEx.search()
メソッドを使用して IP アドレスを検証する
IP アドレスを検証するもう 1つの方法は、正規表現を使用して有効な IP アドレスの定義済みパターンと照合することです。 次のコードでは、re
モジュールの search()
メソッドを呼び出して IP アドレスを検証し、正規表現と IP を引数として渡しています。
IP が有効な場合、このメソッドは True
を返します。 それ以外の場合、False
を返します。
コード例:
# Python 3.x
import re
ip = "192.168.2.3"
regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
if re.search(regex, ip):
print("Valid IP Address")
else:
print("Invalid IP Address")
出力:
#Python 3.x
Valid IP Address
Python で IP アドレスを手動で検証する
組み込みのライブラリ正規表現なしで IP アドレスを検証できます。 以下のコードで、この 3つの条件をチェックして IP アドレスを検証する関数を作成しました。
コード内で次のいずれかの条件が True
の場合、IP は無効になります。
- オクテット数が 4 でない。
- オクテットには、整数以外のものが含まれます。
- オクテット内の数値が 0 ~ 255 の範囲外にある。
コード例:
# Python 3.x
def validate_ip_address(ip):
octects = ip.split(".")
if len(octects) != 4:
return "Invalid IP"
for number in octects:
if not isinstance(int(number), int):
return "Invalid IP"
if int(number) < 0 or int(number) > 255:
return "Invalid IP"
return "Valid IP"
validate_ip_address("192.168.-1.1")
出力:
#Python 3.x
'Invalid IP'
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn