python比较两个ipv4地址是否处于同一个网段

该博客介绍了一种使用Python比较两个IPv4地址是否位于同一子网的方法。通过将IP地址和子网掩码转换为二进制,然后进行位运算,可以判断两个IP地址是否属于同一个网络段。
摘要由CSDN通过智能技术生成

##将IP地址转为二进制
def ipToBinary(ip):
    '''ip address transformat into binary
    Argv:
        ip: ip address
    Return:
        binary
    '''
    ip_num = ip.split('.')
    x = 0
    
    ##IP地址是点分十进制,例如:192.168.1.33,共32bit
    ##第1节(192)向前移24位,第2节(168)向前移16位
    ##第3节(1)向迁移8位,第4节(33)不动
    ##然后进行或运算,得出数据
    for i in range(len(ip_num)):
        num = int(ip_num[i]) << (24 - i*8)
        x = x | num

    brnary = str(bin(x).replace('0b',''))
    return brnary


##将子网掩码转为二进制
def maskToBinary(mask):
    '''netmask change, example: 24 or 255.255.255.0 change binary
    Argv:
        mask: netmask, example:24 or 255.255.255.0
    Return:
     

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值