1. 程式人生 > >python 將ipv4的格式轉換

python 將ipv4的格式轉換

ipv4 python 格式轉換

Python的 socket 庫提供了很多用來處理不同IP地址格式的函數,要使用底層網絡函數,有時普通的字符串形式的IP地址並不是很有用,需要把它們轉換成打包後的32位二進制格式,Python的socke庫提供了很多用來處理不同IP地址格式的函數,這裏我們使用其中的兩個相對標準:inet_aton() 和inet_ntoa()我們來定義convert_ip4_address()函數,調用inet_aton() 和 inet_ntoa() 轉換IP地址。這裏使用兩個示例IP地址:192.168.10.1 和 10.10.10.128


段代碼中技術點使用了如下幾個方面:

1、for-in循環語句定義192.168.10.1和10.10.10.128兩個IP

2、使用inet_aton()把兩個字符串格式的IP地址轉換成打包後的32位二進制格式

3、使用inet_ntoa()把轉換成打包的32bit地址轉換為十進制格式

3、使用binascii模塊中的hexlify函數,以十六進制形式表示二進制數據。

4、print分段打印輸出格式


代碼如下:

import  socket
from binascii import hexlify
def convert_ipv4_address():
    for ip_addr in  [‘192.168.10.1‘,‘10.10.10.128‘]:
        packed_ip_addr = socket.inet_aton(ip_addr)
        unpacked_ip_addr = socket.inet_ntoa(packed_ip_addr)
        print ("IP Address: %s => Packed: %s, Unpacked: %s" %(ip_addr,hexlify(packed_ip_addr),unpacked_ip_addr))
convert_ipv4_address()

備註:還要是註意格式的縮進,python對於縮進格式要求相對嚴格

執行結果截圖如下:

技術分享


本文出自 “老白的博客” 博客,請務必保留此出處http://laobaiv1.blog.51cto.com/2893832/1956413

python 將ipv4的格式轉換