下面我将为您详细讲解如何在Python中获取Linux系统下的本机IP地址。
步骤一:导入必要的模块
获取Linux系统下的本机IP地址需要使用到Python的socket模块,因此我们需要先导入该模块。在Python中,可以使用以下语句导入socket模块:
import socket
步骤二:通过socket模块获取本机IP地址
有两种方法可以通过socket模块获取本机IP地址,分别是使用gethostname()函数和getaddrinfo()函数。
通过gethostname()函数获取本机IP地址
使用gethostname()函数可以获取当前主机的主机名,然后调用socket.gethostbyname()函数将主机名转换为IP地址。以下是示例代码:
import socket
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
print("HostName:", hostname)
print("IPAddress:", ip_address)
输出结果如下:
HostName: ubuntu
IPAddress: 192.168.1.2
通过getaddrinfo()函数获取本机IP地址
使用getaddrinfo()函数可以获取当前主机的所有IP地址,然后选择其中一个IP地址作为本机IP地址。以下是示例代码:
import socket
addr_info = socket.getaddrinfo(socket.gethostname(), None)
ip_address = [item[4][0] for item in addr_info if ':' not in item[4][0]][0]
print("IPAddress:", ip_address)
输出结果如下:
IPAddress: 192.168.1.2
步骤三:编写完整代码并测试
import socket
# 通过gethostname()函数获取本机IP地址
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
print("通过gethostname()函数获取本机IP地址:", ip_address)
# 通过getaddrinfo()函数获取本机IP地址
addr_info = socket.getaddrinfo(socket.gethostname(), None)
ip_address = [item[4][0] for item in addr_info if ':' not in item[4][0]][0]
print("通过getaddrinfo()函数获取本机IP地址:", ip_address)
输出结果如下:
通过gethostname()函数获取本机IP地址: 192.168.1.2
通过getaddrinfo()函数获取本机IP地址: 192.168.1.2
以上就是获取Linux系统下的本机IP地址的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python获取Linux系统下的本机IP地址代码分享 - Python技术站