Python

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

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のアドレスはチェック出来ません