ip地址转换为10进制python
时间: 2024-09-23 09:02:57 浏览: 50
在Python中,将IP地址转换为十进制整数通常涉及到将每个部分(如IPv4地址的四个八位字节或IPv6的八个十六进制数字)分开,并分别转换。你可以使用内置的int函数结合字符串切片来完成这个过程。
对于IPv4地址,可以这样做:
```python
def ip_to_decimal(ip):
octets = ip.split('.') # 分割成四部分
decimal = int(octets[0]) * (256 ** 3) + int(octets[1]) * (256 ** 2) + int(octets[2]) * 256 + int(octets[3])
return decimal
# 示例
ip_address = "192.168.1.1"
decimal_ip = ip_to_decimal(ip_address)
print(f"{ip_address} 转换成十进制是 {decimal_ip}")
```
对于IPv6地址,由于每个部分已经是十六进制,你需要先转换为十进制,然后组合起来:
```python
def ipv6_to_decimal(ip):
parts = ip.split(':')
decimal = sum(int(part, 16) << (i * 16) for i, part in enumerate(parts))
return decimal
# 示例
ipv6_address = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
decimal_ipv6 = ipv6_to_decimal(ipv6_address)
print(f"{ipv6_address} 转换成十进制是 {decimal_ipv6}")
```
阅读全文