PythonでIPv4アドレスを別の形式に変換する

PythonIPv4アドレスを別の形式に変換する
低レベルネットワーク機能を扱いたいときに、IPアドレスを普通の文字列で表記すると扱いにくい。
そこで、パックされた32bitバイナリ形式に変換する。

コードは以下の通り:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import socket
from binascii import hexlify


def convert_ip4_address(ip_address):
    """
    パックしたIPアドレスと元のアドレスを表示する
    """
    packed_ip_addr = socket.inet_aton(ip_address)
    unpacked_ip_addr = socket.inet_ntoa(packed_ip_addr)
    print "Packed: %s, Unpacked: %s" % (hexlify(packed_ip_addr), unpacked_ip_addr)


if __name__ == '__main__':
    convert_ip4_address(ip_address='127.0.0.1')

inet_aton(ip_string)は、IPv4アドレスを32bitにパックしたバイナリ形式に変換し、長さ4の文字列として返す。
inet_ntoa(packed_ip)は、32bitにパックしたバイナリ形式のIPv4アドレスをドット記法による文字列(‘127.0.0.1’など)に変換する。
hexlify()はバイナリデータを16進数表記へ変換する。