📅  最后修改于: 2023-12-03 15:37:38.452000             🧑  作者: Mango
查询主机名和 IP 地址是网络编程中常见的需求。Python 提供了多种方式来实现这个功能,本文将介绍其中两种方法。
Python 内置的 socket 库提供了获取主机名和 IP 地址的函数。可以通过调用 socket.gethostname()
和 socket.gethostbyname()
分别获取主机名和 IP 地址。
import socket
# 获取主机名
hostname = socket.gethostname()
print("主机名:", hostname)
# 获取 IP 地址
ip = socket.gethostbyname(hostname)
print("IP 地址:", ip)
输出结果将类似下面这样:
主机名: example.com
IP 地址: 93.184.216.34
netifaces 是第三方库,提供了更加丰富的网络信息查询接口,可以获取当前系统上的所有网络接口以及它们的 IP 地址等信息。可以通过调用 netifaces.ifaddresses()
方法来获取网络接口具体信息。
import netifaces
# 获取网络接口信息
interfaces = netifaces.interfaces()
for interface in interfaces:
addresses = netifaces.ifaddresses(interface)
ip = addresses.get(netifaces.AF_INET)
if ip:
print("网络接口", interface, "IP 地址:", ip[0].get("addr"))
输出结果将类似下面这样:
网络接口 lo IP 地址: 127.0.0.1
网络接口 eth0 IP 地址: 192.168.0.100
以上就是在 Python 中显示主机名和 IP 地址的两种方法,可以根据实际情况选择不同的方法进行使用。