使用Python获取IP地址中的最后八位字节

2024-04-29 21:34:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python脚本,它将采用CIDR格式的IP地址(即1.1.1.0/32或10.0.0.1/24),并将IP分成三部分:前三个八位字节(1.1.1)、最后一个八位字节(0)和子网掩码(32)。IP的长度是可变的,所以我不知道是否可以使用某种字符串计数器。

有什么想法吗?

谢谢


Tags: 字符串ip脚本格式计数器cidr八位字节
3条回答

使用正则表达式:

#!/usr/bin/python
import re


def extractIP( ipStr):

    l = re.split('(.*)\.(.*)\.(.*)\.(.*)/(.*)', ipStr)
    return l[1:-1]

print extractIP("1.2.3.45/35")

正则表达式可能很麻烦。也可以使用split()函数

inp = '192.168.0.1/24'
ip, submask = inp.split('/')
octets = ip.split('.')

将IP解析为一个int,并使用按位运算符获取它。

另一种方法是使用类似ipaddr-py的库。我个人更喜欢图书馆。

相关问题 更多 >