Pythonsocketgetnameinfo()函数示例:获取本地主机名和服务端口号
发布时间:2023-12-24 18:21:51
Python的socket库中提供了getnameinfo()函数,用于获取给定的网络地址的主机名和服务端口号。
getnameinfo()函数的语法如下:
socket.getnameinfo(sockaddr, flags)
其中,sockaddr参数是一个元组,包含了网络地址和端口号。flags参数是一个整数,用于指定一些选项。
示例代码如下:
import socket
# 定义网络地址和端口号
sockaddr = ('127.0.0.1', 80)
# 调用getnameinfo()函数获取主机名和服务端口号
host, port = socket.getnameinfo(sockaddr, socket.NI_NUMERICSERV)
print("主机名:", host)
print("服务端口号:", port)
运行以上代码,将输出主机名和服务端口号:
主机名: 127.0.0.1 服务端口号: 80
在示例中,sockaddr参数指定了网络地址为"127.0.0.1",端口号为80。然后通过getnameinfo()函数获取了主机名和服务端口号。由于传入的地址为数值地址,因此在输出时会以数字形式显示。
需要注意的是,getnameinfo()函数也可以返回主机名和服务端口名,而不仅仅是数字形式的地址和端口号。为了获取主机名和服务端口名,可以将flags参数设置为0,如下所示:
host, port = socket.getnameinfo(sockaddr, 0)
print("主机名:", host)
print("服务端口名:", port)
此时,输出将会是主机名和服务端口名:
主机名: localhost 服务端口名: http
总之,getnameinfo()函数可以方便地获取给定的网络地址的主机名和服务端口号。可以根据需要选择以数字形式还是以名称形式来表示。
