以C段为单位随机选取IP地址
平时会遇到对不同IP地址进行连通性测试,IP地址太多,只能是根据IP地址以C为单位,每个C选取一个地址进行测试。写个脚本,读取这几万个IP地址,然后以C为单位,每个C随机选出一个IP地来
#!/usr/bin/env Python
# coding=utf-8
import re
import random
'''
根据IP地址,随机选取每个C里面的一个地址来进行ping测试
可以设置一个字典,字典里面根据ip地址的前三段来生成一个列表,每个列表里面存放具体的ip
可以根据列表的长度来生成一个随机数取得一个C里面的ip地址
'''
def get_random_ipaddress():
# 读取相关的ip地址存放的文件,然后循环读取数据
file_name = "ip_address.txt"
with open(file_name, 'r', encoding='utf-8') as file:
lines = file.readlines()
file.close()
# 设置一个字典,存放相关数据
ip_address = {}
for line in lines:
# 去掉空格
line = line.strip()
# 进行获取ip的正则表达式,取得ip地址的C段
ip = re.findall(r'[0-9]+(?:\.[0-9]+){2}', line)
# 根据IP地址取得C,判断是否已有相关key,有的话就存入相关list,如果没有,要先生成list
if ip[0] not in ip_address.keys():
ip_address[ip[0]] = []
ip_address[ip[0]].append(line)
# 循环打印字典中每个列表中的随机的一个元素
for key in ip_address.keys():
print(ip_address[key][random.randint(0, len(ip_address[key])-1)])
if __name__ == '__main__':
get_random_ipaddress()

浙公网安备 33010602011771号