• python自动化运维-基础篇之IPy


    IPy模块

    IPy提供了非常便捷的ip分配和规化能力,下载地址https://pypi.org/project/IPy/#description

    ip地址网络的基本处理

    >>> from IPy import IP
    >>> ip = IP('192.168.1.0/24')  #IP类实例化
    >>> ip.version()   #4:ipv4 6:ipv6
    4
    >>> ip.len() #ip地址个数。包括了网络地址和广播地址
    256
    >>> ip.iptype()
    'PRIVATE'
    >>> ip.int()
    3232235776
    >>> ip.reverseName()    
    '1.168.192.in-addr.arpa.'
    >>> ip.prefixlen()  #就是子网掩码的后缀
    24
    >>> ip.netmask()
    IP('255.255.255.0')
    >>> ip.strHex() #十六进制
    '0xc0a80100'
    >>> ip.strBin() #二进制
    '11000000101010000000000100000000'
    列出ip地址
    for x in ip:
        print(x)
    print(IP('10.8.1.0').make_net('255.255.255.0')) #10.8.1.0/24根据ip和子网掩码生成网络地址
    print(IP('10.8.1.0/24').strNormal(0)) #10.8.1.0 根据wantprefixlen的参数来决定网络地址的形式
    print(IP('10.8.1.0/24').strNormal(1)) #10.8.1.0/24
    print(IP('10.8.1.0/24').strNormal(2)) #10.8.1.0/255.255.255.0
    print(IP('10.8.1.0/24').strNormal(3)) #10.8.1.0-10.8.1.255
    

    多网络计算

    对网络地址的判断,是否叠加和包含

    in 判断地址或网段的关系
    >>> '192.168.1.121' in IP('192.168.1.0/24')
    True
    >>> IP('192.168.1.0/24') in IP('192.168.0.0/16')
    True
    判断是否叠加
    >>> IP('192.168.1.0/24').overlaps('192.168.2.0/24')
    0 #不叠加
    >>> IP('192.168.0.0/23').overlaps('192.168.2.0/24')
    0
    >>> IP('192.168.0.0/23').overlaps('192.168.1.0/24')
    1 #叠加
    

    案列脚本

    input_ip = input('请输入您的IP地址或网段:')
    ips = IP(input_ip) #IP类实例化
    if len(ips) > 1:
        print('ipv4/ipv6:ipv%s;网络地址:%s;子网掩码:%s;广播地址%s'%(ips.version(), ips.net(), ips.netmask(), ips.broadcast()))
        print('ipAddressNumbers:%s'%ips.len())
        print('revers:%s'%ips.reverseNames())
    else:
        print('就是一个ipv%s地址:%s'%(ips.version(),ips.net()))
        print('iptype:%s'%ips.iptype())
    
    print('16进制:%s;2进制:%s'%(ips.strHex(), ips.strBin()))
    
  • 相关阅读:
    FZU 2105 (线段树)
    HDU 4903 (模拟+贪心)
    Codeforces Beta Round #91 (Div. 1 Only) E. Lucky Array
    HDU 3308 (线段树区间合并)
    POJ 3667(线段树区间合并)
    线段树题集 (cf版)
    HDU 4902 (牛叉的线段树)
    20150204--JS巩固与加强2-01
    20150203+JS巩固与加强1-02
    20150203+JS巩固与加强1-01
  • 原文地址:https://www.cnblogs.com/linux-error/p/12488879.html
Copyright © 2020-2023  润新知