用法:
socket.getaddrinfo(host, port, family=0, type=0, proto=0, flags=0)
将
host
/port
参数转换为 5 元组序列,其中包含创建连接到该服务的套接字所需的所有参数。host
是域名,是 IPv4/v6 地址或None
的字符串表示形式。port
是字符串服务名称,例如'http'
、数字端口号或None
。通过将None
作为host
和port
的值传递,您可以将NULL
传递给底层 C API。可以选择指定
family
、type
和proto
参数以缩小返回的地址列表。将零作为每个参数的值传递会选择全部结果范围。flags
参数可以是一个或几个AI_*
常量,并将影响结果的计算和返回方式。例如,AI_NUMERICHOST
将禁用域名解析,如果host
是域名,则会引发错误。该函数返回具有以下结构的 5 元组列表:
(family, type, proto, canonname, sockaddr)
在这些元组中,
family
、type
、proto
都是整数,旨在传递给socket()
函数。canonname
将是一个字符串,表示host
的规范名称,如果AI_CANONNAME
是flags
参数的一部分;否则canonname
将为空。sockaddr
是说明套接字地址的元组,其格式取决于返回的family
((address, port)
2 元组用于AF_INET
,(address, port, flowinfo, scope_id)
4 元组用于AF_INET6
),旨在传递给socket.connect()
方法。使用参数
host
、port
、family
、type
、protocol
引发审计事件socket.getaddrinfo
。以下示例在端口 80 上获取与
example.org
的假设 TCP 连接的地址信息(如果未启用 IPv6,您的系统上的结果可能会有所不同):>>> socket.getaddrinfo("example.org", 80, proto=socket.IPPROTO_TCP) [(<AddressFamily.AF_INET6: 10>, <AddressFamily.SOCK_STREAM: 1>, 6, '', ('2606:2800:220:1:248:1893:25c8:1946', 80, 0, 0)), (<AddressFamily.AF_INET: 2>, <AddressFamily.SOCK_STREAM: 1>, 6, '', ('93.184.216.34', 80))]
在 3.2 版中更改:现在可以使用关键字参数传递参数。
在 3.7 版中更改:对于 IPv6 多播地址,表示地址的字符串将不包含
%scope_id
部分。
相关用法
- Python socket.create_server用法及代码示例
- Python socket.socket.sendmsg用法及代码示例
- Python socket.socket.recvmsg_into用法及代码示例
- Python socket.socket.recvmsg用法及代码示例
- Python sorted()用法及代码示例
- Python sort()用法及代码示例
- Python sorted()和sort()用法及代码示例
- Python sklearn.cluster.MiniBatchKMeans用法及代码示例
- Python scipy.ndimage.binary_opening用法及代码示例
- Python scipy.signal.windows.tukey用法及代码示例
- Python scipy.stats.mood用法及代码示例
- Python str.isidentifier用法及代码示例
- Python sklearn.metrics.fbeta_score用法及代码示例
- Python scipy.fft.ihfftn用法及代码示例
- Python scipy.stats.normaltest用法及代码示例
- Python scipy.ndimage.convolve1d用法及代码示例
- Python scipy.stats.arcsine用法及代码示例
- Python scipy.interpolate.UnivariateSpline.antiderivative用法及代码示例
- Python scipy.linalg.hadamard用法及代码示例
- Python sklearn.linear_model.PassiveAggressiveRegressor用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 socket.getaddrinfo。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。