批量生成IPv6 range地址

Posted RegexL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量生成IPv6 range地址相关的知识,希望对你有一定的参考价值。

def get_ip(count=\'10\', start=\'2001:2:3:4:5:6:7:8\'):
    starts = start.split(\':\')
    A = int(starts[0], 16) # int(\'a\',16) 将字符串\'a\'进行16进制转换 base 存在时,视 x 为 base 类型数字,并将其转换为 10 进制数字。
    # A2 = int(\'2001\', 16)
    # print(A2)
    B = int(starts[1], 16)
    # print(B)
    C = int(starts[2], 16)
    D = int(starts[3], 16)
    E = int(starts[4], 16)
    F = int(starts[5], 16)
    G = int(starts[6], 16)
    H = int(starts[7], 16)
    file = open(str(count)+\'_ipv6_range_list.txt\', \'w\')
    for A in range(A, 65536):
        A = hex(A).replace(\'0x\', \'\')
        for B in range(B, 65536):
            B = hex(B).replace(\'0x\', \'\')
            for C in range(C, 65536):
                C = hex(C).replace(\'0x\', \'\')
                for D in range(D, 65536):
                    D = hex(D).replace(\'0x\', \'\')
                    for E in range(E, 65536):
                        E = hex(E).replace(\'0x\', \'\')
                        for F in range(F, 65536):
                            F = hex(F).replace(\'0x\', \'\')
                            for G in range(G, 65536):
                                G = hex(G).replace(\'0x\', \'\')
                                for H in range(H, 65536):
                                    # print "H=",H
                                    H1 = hex(H).replace(\'0x\', \'\')
                                    H2 = hex(H+10).replace(\'0x\', \'\')
                                    # ipv6 = "%s:%s:%s:%s:%s:%s:%s:%s" % (A, B, C, D, E, F, G, H)
                                    ipv6_start = "%s:%s:%s:%s:%s:%s:%s:%s" % (A, B, C, D, E, F, G, H1)
                                    ipv6_end = "%s:%s:%s:%s:%s:%s:%s:%s" % (A, B, C, D, E, F, G, H2)
                                    if count > 1:
                                        ipv6 = ipv6_start + \'-\' + ipv6_end
                                        file.write(ipv6 + "\\n")
                                        count -= 1
                                        print(ipv6)
                                    elif count == 1:
                                        file.write(ipv6)
                                        count -= 1
                                    else:
                                        file.close()
                                        return

                                H = 0
                            G = 0
                        F = 0
                    E = 0
                D = 0
            C = 0
        B = 0

if __name__ == \'__main__\':
    get_ip(100, \'2001:2:3:4:5:6:FFFE:FFFa\')

 

以上是关于批量生成IPv6 range地址的主要内容,如果未能解决你的问题,请参考以下文章

批量生成IPv6 host地址

如何批量验证字符串是有效的 IPv4 或 IPv6 地址?

使用PHP和MySQL数据库批量查找IPv6地址

2019-05-30 Python+Jinja2+yaml 批量生成配置

PHP 使用PHP和MySQL数据库批量查找IP地址(IPv6)

ipv6无状态地址生成