zoukankan      html  css  js  c++  java
  • IP地址处理模块(IPy)

    IPy这个强大的Python第三方包主要提供了包括网段、网络掩码、广播地址、子网数、IP类型的处理等等功能。

    1、安装

    sudo pip3 install IPy

    详细帮助可以使用help(IPy)

    2、判断IP版本

    >>> import IPy
    >>> IPy.IP("127.0.0.1").version()
    4
    >>> IPy.IP("10.0.0.0/24").version()
    4
    >>> IPy.IP("::1").version()
    6

    3、解析IP地址段

    >>> ips = IPy.IP("192.168.1.0/24")
    >>> print(len(ips))
    256
    >>> for ip in ips:
    ... print(ip)
    ...
    192.168.1.0
    192.168.1.1
    192.168.1.2
    192.168.1.3
    ...
    192.168.1.255

    4、获取子网掩码、网络前缀、广播地址

    >>> ips.netmask()
    IP('255.255.255.0')
    >>> ips.prefixlen()
    24
    >>> ips.broadcast()
    IP('192.168.1.255')

    5、IP地址反向解析、转进制、以及IPv4和IPv6相互转换

    >>> ip.reverseName()
    '100.1.168.192.in-addr.arpa.'
    >>> ip.strBin()
    '11000000101010000000000101100100'
    >>> ip.strHex()
    '0xc0a80164'
    >>> ip.strDec()
    '3232235876'
    >>> ip.v46map()
    IP('::ffff:192.168.1.100')

    6、生成网段

    >>> print(IPy.IP('127.0.0.1').make_net('255.0.0.0'))
    127.0.0.0/8
    >>> print(IPy.IP("192.168.1.0-192.168.1.255",make_net=True))
    192.168.1.0/24
    >>> print(IPy.IP("192.168.1.1/255.255.255.0",make_net=True))
    192.168.1.0/24

    7、获取不同类型(格式的网段)

    >>> IPy.IP("192.168.10.0/24").strNormal()
    '192.168.10.0/24'
    >>> IPy.IP("192.168.10.0/24").strNormal(0)
    '192.168.10.0'
    >>> IPy.IP("192.168.10.0/24").strNormal(1)
    '192.168.10.0/24'
    >>> IPy.IP("192.168.10.0/24").strNormal(2)
    '192.168.10.0/255.255.255.0'
    >>> IPy.IP("192.168.10.0/24").strNormal(3)
    '192.168.10.0-192.168.10.255'

    8、IP比较,可判断IP和网段是否在另一个网段或范围内

    >>> "192.168.100.1" in IP("192.168.100.0/24")
    True
    >>> "192.168.200.1" in IP("192.168.100.0/24")
    False
    >>>'192.168.1.0/24' in IPy.IP('192.168.0.0/16')
    True
    >>>'192.168.1.0/24' in IPy.IP('192.168.0.0-192.168.8.255')
    True

    9、判断是否重叠

    >>> IP("192.168.100.0/23").overlaps("192.168.100.0/24")
    1 # 1 代表重叠
    >>> IP("192.168.100.0/25").overlaps("192.168.100.0/24")
    1
    >>> IP("192.168.200.0/25").overlaps("192.168.100.0/24")
    0
  • 相关阅读:
    oc基础第二天类与对象---1复习代码
    oc基础第二天类与对象---1复习
    oc基础第一天---类的方法,类与对象
    oc基础第一天---类与对象
    oc基础第一天---面向过程与面向对象
    oc基础第一天---c语言和oc语言的对比
    oc基础第一天---c语言与oc语言对比
    第一阶段c语言结晶说明
    mvc 使用json.net 替换JsonResult 默认序列化
    Mvc ModelBinder 一对多自定义数据格式 post提交
  • 原文地址:https://www.cnblogs.com/dxnui119/p/14669410.html
Copyright © 2011-2022 走看看