Python 实现顺序生成IP地址

代码如下:

#===============================================================#
#            根据输入起始结束IP地址,生成IP地址段               #
#===============================================================#

def create_ip(start_ip,end_ip,f_name):
    s_ip=start_ip.split('.')
    s1=int(s_ip[0])
    s2=int(s_ip[1])
    s3=int(s_ip[2])
    s4=int(s_ip[3])

    e_ip=end_ip.split('.')
    e1=int(e_ip[0])
    e2=int(e_ip[1])
    e3=int(e_ip[2])
    e4=int(e_ip[3])
    f = open("{}.txt".format(f_name),"a") #a为追加模式,不会覆盖掉原来的内容
    if s1==e1:
        if s2==e2:
            if s3==e3:
                if s4==e4:
                    print('起始值与结束值一致:')
                    print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(s4),file=f)
                if s4<e4:   
                    if s3==e3:
                        for i in range(s4,e4+1):
                            print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
            if s3<e3:
                for i in range(s4,255+1):
                    print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
                s3=s3+1
                while s3<e3:
                    for i in range(0,255+1):
                        print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
                    s3+=1                
                for i in range(0,e4+1):
                    print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
        if s2<e2:
            while s3<255:
                for i in range(s4,255+1):
                    print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
                s3=s3+1
            for i in range(0,255+1):
                print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
            s2=s2+1
            s3=0
            while s2<e2:
                for ii in range (0,255+1):
                    for i in range(0,255+1):
                        print(str(s1)+'.'+str(s2)+'.'+str(ii)+'.'+str(i),file=f)
                s2+=1
                #s3=0
            while s3<e3:
                for i in range(0,255+1):
                    print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
                s3=s3+1                
            for i in range(0,e4+1):
                print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
    if s1<e1:
        while s2<255:
            for i in range(s4,255+1):
                print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
            s3=s3+1
            for ii in range(s3,255+1):
                for i in range(0,255+1):
                    print(str(s1)+'.'+str(s2)+'.'+str(ii)+'.'+str(i),file=f)
            s2=s2+1
        for ii in range(0,255+1):
            for i in range(0,255+1):
                print(str(s1)+'.'+str(s2)+'.'+str(ii)+'.'+str(i),file=f)
        s1=s1+1
        s2=0
        while s1<e1:
            for iii in range(0,255+1):
                for ii in range(0,255+1):
                    for i in range(0,255+1):
                        print(str(s1)+'.'+str(iii)+'.'+str(ii)+'.'+str(i),file=f)
            s1=s1+1
        #此时s1==e1
        while s2<e2:
            #s3
            for ii in range(0,255+1):
                #s4
                for i in range(0,255+1):
                    print(str(s1)+'.'+str(s2)+'.'+str(ii)+'.'+str(i),file=f)
            s2=s2+1        
        #此时s1==e1,s2==e2
        s3=0
        while s3<e3:
            for i in range(0,255+1):
                print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
            s3=s3+1
        
        
        #此时s1==e1,s2==e2,s3==e3
        for i in range(0,e4+1):
            print(str(s1)+'.'+str(s2)+'.'+str(s3)+'.'+str(i),file=f)
        
    f.close()
                
          
            
                
if __name__ == '__main__':
    start = input('请输入起始IP地址:')
    end = input('请输入结束IP地址:')
    f_name = input('请输入生成IP数据保存的文件名:')
    create_ip(start,end,f_name)
                            
                        

               
    

执行

在.py文件同目录下生成一个t.txt文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静候光阴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值