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

使用socketgetnameinfo()函数在Python中获取网络地址和端口号

发布时间:2023-12-24 18:21:39

在Python中,可以使用socket.getnameinfo()函数来获取网络地址和端口号。该函数接受一个参数,即一个包含网络地址和端口号的元组,然后返回一个包含网络地址和端口号的元组。

下面是一个使用socket.getnameinfo()函数获取网络地址和端口号的例子:

import socket

# 创建一个socket对象
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 建立连接
sock.connect(('www.example.com', 80))

# 获取远程主机的网络地址和端口号
remote_addr = sock.getpeername()
print('Remote address:', remote_addr)

# 获取本地主机的网络地址和端口号
local_addr = sock.getsockname()
print('Local address:', local_addr)

# 关闭连接
sock.close()

输出结果为:

Remote address: ('93.184.216.34', 80)
Local address: ('192.168.0.100', 60444)

在上述例子中,首先创建了一个socket对象并与远程主机建立连接。然后使用getpeername()函数获取远程主机的网络地址和端口号,并使用getsockname()函数获取本地主机的网络地址和端口号。最后关闭连接。

需要注意的是,getnameinfo()函数返回的结果是一个包含网络地址和端口号的元组,其中网络地址可能是一个域名或IP地址,端口号是一个整数。