欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python腳本生成隨機(jī)IP的簡單方法

 更新時間:2015年07月30日 12:07:52   作者:luqiuwen  
這篇文章主要介紹了使用Python腳本生成隨機(jī)IP的簡單方法,并且可以自己設(shè)定IP數(shù)值范圍,需要的朋友可以參考下


需求

在某應(yīng)用中,需要根據(jù)一定的規(guī)則生成隨機(jī)的IP地址,規(guī)則類似于192.168.11.0/24這樣的CIDR形式給出。
實(shí)現(xiàn)

經(jīng)過艱苦卓絕的調(diào)試,下面的代碼是可以用的:

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)))

生成的結(jié)果如:

 192.168.10.175  192.168.10.29  
 192.168.10.30  192.168.10.207 
 192.168.10.248  192.168.10.145 
 192.168.10.168  192.168.10.223 
 192.168.10.66  192.168.10.138 
 192.168.10.99  192.168.10.136 
 192.168.10.147  192.168.10.244 
 192.168.10.73  192.168.10.180 

備注

(mask & 0xffffffff)這一用法,目的在于消除mask上32位以上的高位數(shù)據(jù)。由于mask是IPv4的掩碼,所以不需要32位以上的數(shù)據(jù)。這一問題在mask取反之后比較明顯。由于mask是一個32位以上的數(shù)(有可能是64位),取反之后,高位全部為1,計算的結(jié)果就不正確了。因此,在使用之前,需要利用(mask & 0xffffffff)清除高位。

供各位讀者參考。

相關(guān)文章

  • python中time、datetime模塊的使用

    python中time、datetime模塊的使用

    這篇文章主要介紹了python中time、datetime模塊的使用,幫助大家更好的利用python處理時間,感興趣的朋友可以了解下
    2020-12-12
  • python列表元素拼接成字符串的4種方法

    python列表元素拼接成字符串的4種方法

    本文主要介紹了python列表元素拼接成字符串的4種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 巧用python和libnmapd,提取Nmap掃描結(jié)果

    巧用python和libnmapd,提取Nmap掃描結(jié)果

    本文將會講述一系列如何使用一行代碼解析 nmap 掃描結(jié)果,其中會在 Python 環(huán)境中使用到 libnmap 里的 NmapParser 庫,這個庫可以很容易的幫助我們解析 nmap 的掃描結(jié)果
    2016-08-08
  • 總結(jié)歸納python os庫常用方法

    總結(jié)歸納python os庫常用方法

    這篇文章主要為大家介紹了python os庫常用方法的總結(jié)歸納,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 教你用Python來制作一個自動搶票的腳本小程序

    教你用Python來制作一個自動搶票的腳本小程序

    大麥網(wǎng),是中國綜合類現(xiàn)場娛樂票務(wù)營銷平臺,業(yè)務(wù)覆蓋演唱會、 話劇、音樂劇、體育賽事等領(lǐng)域,但是因?yàn)槠睌?shù)有限,還有黃牛們不能丟了飯碗,所以導(dǎo)致了,很多人都搶不到票,那么,今天帶大家用Python來制作一個自動搶票的腳本小程序,需要的朋友可以參考下
    2023-07-07
  • Python創(chuàng)建臨時文件和文件夾

    Python創(chuàng)建臨時文件和文件夾

    這篇文章主要介紹了Python如何創(chuàng)建臨時文件和文件夾,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Python使用re模塊正則提取字符串中括號內(nèi)的內(nèi)容示例

    Python使用re模塊正則提取字符串中括號內(nèi)的內(nèi)容示例

    這篇文章主要介紹了Python使用re模塊正則提取字符串中括號內(nèi)的內(nèi)容,結(jié)合實(shí)例形式分析了Python使用re模塊進(jìn)行針對括號內(nèi)容的正則匹配操作,并簡單解釋了相關(guān)修正符與正則語句的用法,需要的朋友可以參考下
    2018-06-06
  • Pytorch中如何調(diào)用forward()函數(shù)

    Pytorch中如何調(diào)用forward()函數(shù)

    這篇文章主要介紹了Pytorch中如何調(diào)用forward()函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 教你怎么用Python selenium操作瀏覽器對象的基礎(chǔ)API

    教你怎么用Python selenium操作瀏覽器對象的基礎(chǔ)API

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著怎么用Python selenium操作瀏覽器對象的基礎(chǔ)API展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 詳解Python中的type()方法的使用

    詳解Python中的type()方法的使用

    這篇文章主要介紹了詳解Python中的type()方法的使用,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05

最新評論