题目要求:使用python随机生成IP,随机域名;并创建excel表,将生成的随机IP与域名数据写入;
代码如下:
import random import socket import struct import xlwt book = xlwt.Workbook(encoding='utf-8') #创建Excel sheet = book.add_sheet('sheet1', cell_overwrite_ok=True) #创建sheet页 title = ['ip','yumming'] #把表头名称放入list里面 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) a = [] b = [] start = 0 name = ".com" row = 0 for t in title: sheet.write(0, row, t) row += 1 while True: chart = 'qwertyuioplkjhgfdsazxcvbnm' last = len(chart) - 1 str = '' for i in range(5): ####指定随机生成的格式长度范围 str += chart[random.randint(1, last)] if len(str) == 5: ###指定要生成格式的长度 b.append("www." + str + name) a.append(socket.inet_ntoa(struct.pack('>I', random.randint(ip_addr_min, ip_addr_max)))) if start < 500: ####设置要生成的个数 start += 1 else: break return a,b a,b=__get_random_ip() row = 0 result = [] multi_list = map(list, zip(a, b)) for multi in multi_list: result.append(multi) title = ['IP地址','域名'] result.insert(0,title) print(result) for d in result: # 控制行 col = 0 for one in d: # 控制每一列 sheet.write(row, col, one) # row代表列,col代表行 col += 1 row += 1 book.save('./500个IP和域名.xls') 实际执行代码后结果如下图: