📜  在Python中显示主机名和 IP 地址(1)

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

在Python中显示主机名和 IP 地址

查询主机名和 IP 地址是网络编程中常见的需求。Python 提供了多种方式来实现这个功能,本文将介绍其中两种方法。

使用 socket 库

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 库

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 地址的两种方法,可以根据实际情况选择不同的方法进行使用。