用python批量生成有效的IP地址

时间:2019-08-30
本文章向大家介绍用python批量生成有效的IP地址,主要包括用python批量生成有效的IP地址使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import time
import numpy as np


time_start = time.time()
#批量生成IP地址
def get_ip(number=10, start='1.1.1.1'):
    file = open('ip_list.txt','w')
    starts = start.split('.')
    A = int(starts[0])
    B = int(starts[1])
    C = int(starts[2])
    D = int(starts[3])
    for A in range(A, 256):
        for B in range(B, 256):
           for C in range(256):
              for D in range(D, 256):
                  ip = "%d.%d.%d.%d" % (A, B, C, D)

                  if number>1:
                      file.write(ip + '\n')
                      number -= 1
                  elif number == 1:  # 解决最后多一行回车问题
                       file.write(ip)
                       number -= 1
                  else:
                    file.close()
                    print(ip)
                    return
              D = 0
           C = 0
        B = 0

#运行该生成IP地址文件
get_ip(10000, '101.23.228.102')
time_end = time.time()
time = time_end - time_start
print('耗时%s秒' % time)


#从生成的IP文件中读取url,将其保存为字典格式,并通过dict[i]来获取该ip地址
def readIp():
    ipfile = 'ip_list.txt'
    global  iplist
    iplist={}

    with open(ipfile, 'r') as file_to_read:
        for i in range(0,1000):
            lines = file_to_read.readline()  # 整行读取数据
            if not lines:
                break
            ip=lines.replace('\n',' ')
            iplist[i]=ip

    print(iplist[1])


#执行读取Ip文件命令
readIp()
print('读取结束')


#-*-*-另一种生成url的方式
def getip(ip, count):
    count = int(count)
    ip2 = int(ip.split('.')[-2])
    ip1 = int(ip.split('.')[-1])
    ip_before = '%s.%s' % (ip.split('.')[0], ip.split('.')[1])


    for i in range(0, count):
        new_ip1 = ip1 + i
        if 11 <= new_ip1 <= 254:
            print('%s.%s.%s' % (ip_before, str(ip2), str(new_ip1)))
        else:
            new_ip2 = ip2 + int(new_ip1 / 254)
            new_ip1 = new_ip1 % 254 + 10
            print('%s.%s.%s' % (ip_before, str(new_ip2), str(new_ip1)))

#执行改命令
if __name__ == '__main__':
    getip('10.0.1.111', 1610)

原文地址:https://www.cnblogs.com/gufengchen/p/11436878.html