欢迎访问宙启技术站
智能推送

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()函数可以方便地获取给定的网络地址的主机名和服务端口号。可以根据需要选择以数字形式还是以名称形式来表示。