python随机生成一个地区地址_利用Python生成随机的IP地址
需求
在某应用中,需要根据一定的规则生成随机的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)清除高位。
供各位读者参考。
python随机生成一个地区地址_利用Python生成随机的IP地址相关推荐
- python如何创建一个文件夹_利用Python怎么创建一个文件夹
利用Python怎么创建一个文件夹 发布时间:2020-12-08 14:48:04 来源:亿速云 阅读:91 作者:Leah 这期内容当中小编将会给大家带来有关利用Python怎么创建一个文件夹,文 ...
- 电子邮件服务器的ip地址_可用的不同类型的IP地址
有几种不同类型的IP地址可用.尽管无论哪种类型,IP地址的结构都是相同的,但它们的作用不同.例如,您有公用IP地址,专用IP地址,静态IP地址和动态IP地址. 动态和静态之间的区别是动态IP地址会更改 ...
- python做一个星座分析_利用python输出星座的方法
利用python输出星座的方法 发布时间:2020-09-23 12:12:36 来源:亿速云 阅读:84 作者:小新 这篇文章将为大家详细讲解有关利用python输出星座的方法,小编觉得挺实用的,因 ...
- python实现app自动签到器_利用Python实现App自动签到领取积分
要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化.但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了. 有需要Python学习资料的小伙伴吗?小编整理[ ...
- python处理word或者pdf文件_利用python程序生成word和PDF文档的方法
一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...
- python画二维温度云图_利用python画出词云图
本文将介绍如何利用python中相应的模块画出词云图.首先给出效果图: 其中词云图中的词汇是对手机短信中的垃圾短信的统计,字体越大表示在垃圾短信中出现的频次越高.下面给出具体的步骤. 读取" ...
- python分析pdf年报 货币现金_利用python tushare pandas进行财报分析
一.财报分析 大家在购买股票的时候,已经不只是凭感觉去买了,基本上都会对一个股票进行深入的分析. 毕竟购买股票还是一项风险性较高的投资,需要在较为熟悉以后才能去开展,不能蛮干,钱也都不是天上掉下来的. ...
- python贪吃蛇最简单代码_利用python实现简易版的贪吃蛇游戏(面向python小白)
引言 作为python 小白,总是觉得自己要做好百分之二百的准备,才能开始写程序.以至于常常整天在那看各种语法教程,学了几个月还是只会print('hello world'). 这样做效率太低,正确的 ...
- python 16bit转8bit的工具_利用python读取YUV文件 转RGB 8bit/10bit通用
注:本文所指的YUV均为YUV420中的I420格式(最常见的一种),其他格式不能用以下的代码. 位深为8bit时,每个像素占用1字节,对应文件指针的fp.read(1): 位深为10bit时,每个像 ...
最新文章
- CentOS下的Autoconf和AutoMake(实践篇) 2
- C#图片处理示例(裁剪,缩放,清晰度,水印)
- 文巾解题 190. 颠倒二进制位
- Oracle大象,大象工程(石头剪刀布PK游戏)
- mysql scrapy 重复数据_MySQL大数据量表中删除重复记录
- unity制作预制体,动态加载预制体,实用资源的导出
- Sql Server 2008R2 备份文件还原数据库
- OFDM CP和子载波间隔的取值原则
- 试试Live Witer
- 【SPIE独立出版∣IEEE Fellow特邀主讲】人工智能、网络等多主题征稿
- 中国知音导出mysql_央视社会发展纪录片《从〈中国〉到中国 From Chung Kuo to China》全5集 720P/1080i高清纪录片资源百度云盘下载...
- Python-教你用requests爬取网易云课堂热门课程。
- 自习室图书馆座位预约小程序 开题报告(基于微信小程序毕业设计题目选题课题)
- python爬取视频--下载2019巴菲特股东大会直播视频
- Arthas-thread命令定位线程死锁
- [__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7a97d4c0'报错
- 算法手撕代码61~65
- 这道超级简单的题目没有任何输入。你只需要把这句很重要的话 —— “I‘m gonna WIN!”——连续输出三遍就可以了。注意每遍占一行,除了每行的回车不能有任何多余字符。
- 使用免费工具WCAT为Web应用程序进行压力测试
- 分治算法 --- 详解