段**中技術點使用了如下幾個方面:
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分段列印輸出格式
**如下:
1
2
3
4
5
6
7
8
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對於縮排格式要求相對嚴格
執行結果截圖如下:
IPV4資料報頭部格式
摘自 深入理解計算機網路 王達著 機械工業出版社 來自 來自 傳送端的網路層在收到它的上一層 傳輸層發來的資料段時,需要通過網路層協議將其封裝成資料報,也就是加上網路層ip協議 在此僅以ip協議為例進行介紹 頭部。ip協議頭部主要是源和目的網路的ip位址,以便可以資料分段傳輸到目的網路中。然後資料報...
IPv4與IPv6資料報格式詳解
摘要 本文給出ipv4與ipv6資料報格式示意圖,並整理了各個字段含義,最後對比ipv4與ipv6資料報格式的區別。一 ipv4資料報 圖1 ipv4資料報格式 版本號 version 不同的ip協議版本使用不同的資料報格式。首部長度 hl,internet head length 確定ip資料報中...
IPv4與IPv6位址格式詳解
ipv4位址是類似 a.b.c.d 的格式,它是32位,用 分成四段,用10進製表示 ipv6位址類似 x x x x x x x x的格式,它是128位的,用 分成8段,每個x是乙個16進製制數 16 2 4 可見,ipv6位址空間相對於ipv4位址有了極大的擴充 ipv6 位址的長度為 128 ...