python 隨機生成ipv4位址函式

2021-10-11 16:13:42 字數 870 閱讀 2200

import random

import struct

import socket

「」"(mask & 0xffffffff)這一用法,目的在於消除mask上32位以上的高位資料。由於mask是ipv4的掩碼,

所以不需要32位以上的資料。這一問題在mask取反之後比較明顯。由於mask是乙個32位以上的數(有可能是64位),

取反之後,高位全部為1,計算的結果就不正確了。因此,在使用之前,需要利用(mask & 0xffffffff)清除高位。

「」"random_ip_pool=[『192.168.10.222/0』]

def __get_random_ip():

str_ip = random_ip_pool[random.randint(0,len(random_ip_pool) - 1)]

str_ip_addr = str_ip.split(』/』)[0]

str_ip_mask = str_ip.split(』/』)[1]

ip_addr = struct.unpack(』>i』,socket.inet_aton(str_ip_addr))[0]

mask = 0x0

for i in range(31, 31 - int(str_ip_mask), -1):

mask = mask | ( 1 << i)

ip_addr_min = ip_addr & (mask & 0xffffffff)

ip_addr_max = ip_addr | (~mask & 0xffffffff)

return socket.inet_ntoa(struct.pack(』>i』, random.randint(ip_addr_min, ip_addr_max)))

IPV4位址分類

昨天去做上海 交易所的筆試題時,碰到了這一道題,現整合下手頭的資源,好好闡述這道題。ipv4是網際網路協議的第4版 v代表version,版本之意 也是第乙個被廣泛使用,構成現今 網際網路技術 的基礎的協議。目前的全球 網際網路所採用的協議族是 tcp ip協議族 ip是tcp ip協議族中網路層的...

IPv4 位址分類

d類 組播 11100000 11101111 224 239 e類 240 255 私網id 與私有ip位址對應的是公有位址 public address 由inter nic internet network information center 網際網路資訊中心 負責。這些ip位址分配給註冊並...

ipv4位址分類

ipv4位址分類 a類位址 1 a類位址第1位元組為網路位址,其它3個位元組為主機位址。b類位址 1 b類位址第1位元組和第2位元組為網路位址,其它2個位元組為主機位址。3 b類位址的私有位址和保留位址 172.16.0.0 172.31.255.255是私有位址 169.254.x.x是保留位址。...