Java菜鸡记录日常 2022-08-08 09:39 采纳率: 0%
浏览 14

ipv6 已知起止地址,求所有可用地址

我已经知道ipv6的起始地址和结束地址,怎么能得到所有的可用地址

  • 写回答

1条回答 默认 最新

  • ilmss 2022-08-08 10:00
    关注

    例子:
    已知开始地址(1.1.1.0)、结束地址(1.1.1.255);开始地址(1.1.2.3)、结束地址(1.1.2.12);开始地址(1.2.1.0)、结束地址(1.2.4.255);开始地址(1.1.6.0)、结束地址(1.1.8.212);求其中的所有IP地址。

    
    #!/usr/bin/python  
    # coding=UTF8 
     
    import os 
    import sys 
    from IPy import IP 
    #打开文件;1.txt是存放地址IP;ip.txt是以尾部添加的方式将结果输入到ip.txt中。
    f1=open("./1.txt","r")
    f2=open("./ip.txt",'a+') 
     
    line1=f1.readlines() 
    iplist = ""
    #获取f1文件中的每行数据
    for m in line1: 
        ips = str(m).split("-")
            #获取-前的开始IP
        ips1 = str(ips[0]).split(".")
            #获取-后的开始IP
        ips2 = str(ips[1]).split(".")
            #对IP地址进行判断,并将相应结果输入到f2中。
        if(ips1[0]==ips2[0] and ips1[1]==ips2[1] and ips1[2]==ips2[2]):
            for x in range(int(ips1[3]),int(ips2[3])+1):
                iplist = str(ips1[0])+'.'+str(ips1[1])+'.'+str(ips1[2])+'.'+str(x)
                print >> f2,"%s" %iplist
        else:
            for j in range(int(ips1[3]),256):
                iplist = str(ips1[0])+'.'+str(ips1[1])+'.'+str(ips1[2])+'.'+str(j)
                print >> f2,"%s" %iplist
            for i in range(int(ips1[2])+1,int(ips2[2])):
                for j in range(0,256):
                    iplist = str(ips1[0])+'.'+str(ips1[1])+'.'+str(i)+'.'+str(j)
                    print >> f2,"%s" %iplist
            for j in range(0,int(ips2[3])):
                iplist = str(ips1[0])+'.'+str(ips1[1])+'.'+str(ips2[2])+'.'+str(j)
                print >> f2,"%s" %iplist
     
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月8日