IP地址格式转换 (字符串)
时间: 2023-05-29 22:07:32 浏览: 220
IP地址通常由四个数字组成,每个数字的值在0到255之间,数字之间用点号分隔开,例如:192.168.1.1。
在计算机中,IP地址可以以不同的格式表示,包括字符串格式和整数格式。字符串格式是人类可读的格式,例如上述的192.168.1.1,而整数格式是计算机内部使用的格式,通常以32位二进制数表示。
下面是将IP地址从字符串格式转换为整数格式的Python代码:
```python
def ip_to_int(ip):
"""
Convert an IP address in string format to an integer.
"""
parts = ip.split('.')
return (int(parts[0]) << 24) + (int(parts[1]) << 16) + (int(parts[2]) << 8) + int(parts[3])
```
该函数将IP地址字符串分割成四个部分,将每个部分转换成整数,并将它们左移24、16、8和0位,然后将它们相加得到一个32位整数,即IP地址的整数格式。
下面是将IP地址从整数格式转换为字符串格式的Python代码:
```python
def int_to_ip(ip_int):
"""
Convert an IP address in integer format to a string.
"""
return '{}.{}.{}.{}'.format((ip_int >> 24) & 0xff, (ip_int >> 16) & 0xff, (ip_int >> 8) & 0xff, ip_int & 0xff)
```
该函数将32位整数分成四个8位部分,将每个部分转换成字符串,并用点号分隔它们,得到IP地址的字符串格式。
例如,将字符串格式的IP地址"192.168.1.1"转换为整数格式:
```python
>>> ip_to_int('192.168.1.1')
3232235777
```
将整数格式的IP地址3232235777转换为字符串格式:
```python
>>> int_to_ip(3232235777)
'192.168.1.1'
```
阅读全文