python 处理IP地址固定增加步长,实现255进位

python 处理IP地址固定增加步长。
思想为先将IP转化成10进制后,加上固定步长后再通过位运算和与运算,转成IP地址格式。

代码为:

#!/usr/bin/python
def ipv4_to_int(ipv4):
    ipv4 = [int(x) for x in ipv4.split(".")]
    ipv4_int = (ipv4[0] << 24) + (ipv4[1] << 16) + (ipv4[2] << 8) + ipv4[3]
    print(bin(ipv4_int))
    return ipv4_int
 def int_to_ipv4(ip_int):
    ipv4 = []
    for x in (24, 16, 8 ,0):
        ipv4.append(str(ip_int >> x & 0xFF))     # 这边是关键,和0xFF(11111111)进行于运算,实现进位功能。
        print(ipv4)
    return ".".join(ipv4) 

start_ip = "10.1.1.253"
for x in range(0,4):
    #print(x)
    ip_address = ipv4_to_int(start_ip) + x * 4     #4为固定步长
    #print(ip_address)
    ip_address = int_to_ipv4(ip_address)
    #print(ip_address)
    print("interface gigaEthernet0/1/%d" %x)
    print("  ip address %s 255.255.255.252" %ip_address)
    print("  no shutdown")

注意点:

  1. ipv4 = [int(x) for x in ipv4.split(".")]
    同为
    ip =[]
    for x in ipv4.split("."):
       x = int(x)
       ip.append(x)
    
  2. ipv4_int = (ipv4[0] << 24) + (ipv4[1] << 16) + (ipv4[2] << 8) + ipv4[3]
    位运算是将int转化成二进制后运算的。
  3. ipv4.append(str(ip_int >> x & 0xFF))
    这边是关键,和0xFF(11111111)进行于运算,实现进位功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值