Javascript is required

Python 通过 ip 段生成 IP 地址

作者: IP数据云

栏目: 技术解读

发布时间: 2022-10-08 15:23:47

IP地址的定义


IP地址指的是互联网协议地址,全称为IP Address。IP地址将会给网络上的设备、主机电脑分配逻辑上的一个标识符,用以区分不同地域的设备。IP地址工作在网络协议中的网络层,MAC地址则工作在数据链路层。


当前主流使用的是IPv4这个版本,由32位的二进制数组成。通常由四段组成,例如我们比较常见的路由器网关地址192.168.1.1。



Python 通过 ip 段生成 IP 地址


#!/usr/bin/env python


# -*- coding: utf-8 -*-


def ip2num(ip):


    ip = [int(x) for x in ip.split('.')]


    return ip[0] << 24 | ip[1] << 16 | ip[2] << 8 | ip[3]


def num2ip(num):


    return '%s.%s.%s.%s' % (


        (num & 0xff000000) >> 24,


        (num & 0x00ff0000) >> 16,


        (num & 0x0000ff00) >> 8,


        num & 0x000000ff


    )


def gen_ips(start, end):


    """生成IP地址"""


    # if num & 0xff 过滤掉 最后一段为 0 的IP


    return [num2ip(num) for num in range(start, end + 1) if num & 0xff]


获取IP归属地,企业用户免费试用!


IP地址未来的发展趋势


IPv4地址不足的问题已经相当严重,特别是5G网络发展所产生万物互联的基础,任何智能设备终端均需要IP地址来实现网络的接入。


IPv6便应运而生,IPv4使用的是32位地址,最多能够使用的地址为2^32;IPv6使用的是64为地址,最多能够使用的地址为2^128。大家不要小看了指数的叠加,IPv6的地址数足够涵盖地球上的所有设备。


2019年7月,中国IPv6发展论坛会议已经在京召开。国内三大运营商已经在核心设备上启用了IPv6地址,使用的是IPv6与IPv4同时运行的方式,个人用户端并未感受到差异而已。据统计,全国通过IPv6上网的活跃用户已达7亿左右(累计)。