使用gethostname、gethostbyname、getprotobyname、getservbyname等典型的网络信息获取函数取得自己主机的网络信息,如主机名、IP地址、使用的协议、端口号等。
时间: 2024-10-16 19:13:14 浏览: 92
Python3获取电脑IP、主机名、Mac地址的方法示例
在编程中,`gethostname()` 函数通常用于获取本地主机的名称,也就是计算机在网络中的名字,比如"localhost"。`gethostbyname()` 或 `getaddrinfo()` 可以用来将主机名转换为对应的 IP 地址,返回的是一个结构体数组,包含了 IP 地址和其他相关信息。
`getprotobyname()` 和 `getservbyname()` 分别用于获取协议名到协议号(例如 TCP、UDP 等)和服务名到端口号(如 HTTP:80)的映射。前者需要一个协议名字符串作为输入,后者则需要服务名和默认的套接字域(通常是 "tcp" 或 "udp")作为参数。
以下是使用 Python 的例子:
```python
import socket
def get_host_info():
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
try:
protocol_num = socket.getprotobyname("TCP")
print(f"Protocol TCP (num): {protocol_num}")
except socket.error as e:
print(f"Failed to get protocol number: {e}")
service_name = "http"
port = socket.getservbyname(service_name, "tcp")
print(f"Service {service_name} (port): {port}")
get_host_info()
```
阅读全文