用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。