📜  Python -IP地址(1)

📅  最后修改于: 2023-12-03 15:18:53.141000             🧑  作者: Mango

Python - IP地址

在计算机网络中,IP地址是给予互联网上的设备在网络间通讯时的标识。Python提供了多种方式来处理和操作IP地址。

获取本地IP地址

我们可以使用Python的socket模块来获取本地IP地址。

import socket

ip = socket.gethostbyname(socket.gethostname())
print("本地IP地址:" + ip)

返回结果:

本地IP地址:192.168.1.101
IP地址的转换和处理

Python的ipaddress模块提供了IP地址的转换和处理功能。

IP地址转换为整数

可以使用ipaddress模块中的ip_address()方法将IP地址转换为整数。

import ipaddress

ip = '192.168.1.101'
ip_int = int(ipaddress.IPv4Address(ip))
print('IP地址对应的整数是:', ip_int)

返回结果:

IP地址对应的整数是: 3232235885
整数转换为IP地址

同样使用ipaddress模块,可以将整数转换为IP地址。

import ipaddress

ip_int = 3232235885
ip = str(ipaddress.IPv4Address(ip_int))
print('整数对应的IP地址是:', ip)

返回结果:

整数对应的IP地址是: 192.168.1.101
判断IP地址是否在某个网段内
import ipaddress

ip = '192.168.1.101'
subnet = '192.168.1.0/24'

if ipaddress.IPv4Address(ip) in ipaddress.IPv4Network(subnet):
    print('IP地址在网段内')
else:
    print('IP地址不在网段内')

返回结果:

IP地址在网段内
IPv6地址的处理
import ipaddress

ip = '2001:0db8:85a3:0000:0000:8a2e:0370:7334'
ip_obj = ipaddress.ip_address(ip)

print('IP地址是', ip)
if ip_obj.version == 4:
    print('这是IPv4地址')
elif ip_obj.version == 6:
    print('这是IPv6地址')
else:
    print('这不是有效的IP地址')

返回结果:

IP地址是 2001:0db8:85a3:0000:0000:8a2e:0370:7334
这是IPv6地址
总结

Python提供了很多操作IP地址的工具和模块,可以方便地进行IP地址的转换和处理。以上只是其中部分功能的介绍,您可以深入了解和应用。