写一个代码使用gethostname、gethostbyname、getprotobyname、getservbyname等典型的网络信息获取函数取得自己主机的网络信息,如主机名、IP地址、使用的协议、端口号等。
时间: 2024-10-21 15:14:55 浏览: 53
在Python中,你可以使用`socket`模块来获取主机的网络信息。这里是一个简单的例子,演示如何使用`gethostname()`获取主机名,`gethostbyname()`获取IP地址,`getprotobyname()`和`getservbyname()`获取协议和服务端口号:
```python
import socket
# 获取主机名
def get_host_name():
hostname = socket.gethostname()
print(f"主机名: {hostname}")
# 获取IP地址
def get_ip_address():
ip = socket.gethostbyname(hostname)
print(f"IP地址: {ip}")
# 获取默认的传输层协议(TCP或UDP)
def get_protocol():
protocol = socket.getprotobyname("tcp")
print(f"默认协议: TCP (对应数值通常为6)")
# 获取HTTP服务的端口号(如果有的话,比如HTTP默认端口80)
def get_service_port(service_name):
port = socket.getservbyname(service_name, "tcp")
print(f"{service_name}服务端口号: {port}")
# 主函数
if __name__ == "__main__":
get_host_name()
get_ip_address()
get_protocol()
# 如果你想获取特定服务的端口,例如http
get_service_port("http")
```
运行此代码,你会看到类似这样的输出:
```
主机名: your-host-name
IP地址: 192.168.1.1
默认协议: TCP (对应数值通常为6)
http服务端口号: 80
```
请注意,你需要将`your-host-name`替换为你实际的主机名称。
阅读全文