Posted at

PythonでIPアドレスのフォーマットをチェックする

More than 1 year has passed since last update.

PythonでIPアドレス(IPv4)のフォーマットをチェックする場合の一例です。

import socket

def check_ipaddr_format(ipaddr):
msg = ""
result = True
try:
socket.inet_aton(ipaddr)
except socket.error:
msg = "Bad IP address (%s) " % ipaddr
result = False
return result, msg


補足


  • socketモジュールのinet_atonメソッドは本来、IPアドレスの文字列を32ビットのバイナリ形式に変換する用途で使用するメソッドですが、上記の例では、inet_atonメソッドがIPアドレスの形式に不正がある場合、例外エラー(socket.error)を返却する動作を利用しています

  • 上記の方法はIPv6のアドレスはチェック出来ません