摘要:需求在某應用中,需要根據一定的規則生成隨機的地址,規則類似于這樣的形式給出。實現經過艱苦卓絕的調試,下面的代碼是可以用的生成的結果如備注這一用法,目的在于消除上位以上的高位數據。因此,在使用之前,需要利用清除高位。
需求
在某應用中,需要根據一定的規則生成隨機的IP地址,規則類似于192.168.11.0/24這樣的CIDR形式給出。
實現經過艱苦卓絕的調試,下面的代碼是可以用的:
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)))
生成的結果如:
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位以上的高位數據。由于mask是IPv4的掩碼,所以不需要32位以上的數據。這一問題在mask取反之后比較明顯。由于mask是一個32位以上的數(有可能是64位),取反之后,高位全部為1,計算的結果就不正確了。因此,在使用之前,需要利用(mask & 0xffffffff)清除高位。
供各位讀者參考。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37571.html
摘要:爬蟲實戰二爬取西刺代理的代理對于剛入門的同學來說,本次實戰稍微有點難度,但是簡單的爬取圖片文本之類的又沒營養,所以這次我選擇了爬取西刺代理的地址,爬取的代理也能在以后的學習中用到本次實戰用的主要知識很多,其中包括自動保存利用抓包工具獲取和匹 爬蟲實戰(二):爬取西刺代理的代理ip 對于剛入門的同學來說,本次實戰稍微有點難度,但是簡單的爬取圖片、文本之類的又沒營養,所以這次我選擇了爬...
摘要:總的來說有兩種反爬策略,要么驗證身份,把蟲子踩死在門口要么在網站植入各種反爬機制,讓爬蟲知難而退。本節內容就著這兩種反爬策略提出一些對策。內嵌反爬很靈活,沒有什么固定的代碼格式,要花時間去分析出來。 ??之前提到過,有些網站是防爬蟲的。其實事實是,凡是有一定規模的網站,大公司的網站,或是盈利性質比較強的網站,都是有高級的防爬措施的。總的來說有兩種反爬策略,要么驗證身份,把蟲子踩死在門口...
摘要:部分來自網絡,適用于學習,維護網絡安全,做合法公民一和不同,沒有面向連接的機制,其是一種不可靠的協議,沒有確認機制。 部分來自網絡,適用于學習,維護網絡安全,做合法公民 一、UDP 和TCP不同,UDP沒有面向連接的機制,其是一種不可靠的協議,沒有確認機制。也就是說只要其端口開放,有數據需要交互時直接進行數據交互,也不需要TCP的三次握手。這樣的話,基于UDP的攻擊比基于TCP的攻擊需...
閱讀 3233·2021-11-22 12:07
閱讀 1876·2021-10-12 10:11
閱讀 1041·2019-08-30 15:44
閱讀 2935·2019-08-30 12:45
閱讀 2183·2019-08-29 16:41
閱讀 1636·2019-08-29 16:35
閱讀 2620·2019-08-29 12:57
閱讀 1147·2019-08-26 13:51