簡體   English   中英

如何將 IPv4 和 IPv6 源地址綁定到 Python 套接字?

[英]How to bind both IPv4 and IPv6 source address to Python socket?

我希望使用 sockets 創建一個 TCP 服務器,它綁定到 IPv4 和 IPv6 地址。

有沒有辦法在不創建 2 sockets 的情況下做到這一點?

您正在尋找的功能稱為“雙棧”,或 IPv4 + IPv6 雙棧套接字。

從 Python 3.8 開始,您可以使用socket.create_server()輕松完成此操作。

設置參數dualstack_ipv6=True將允許您在受支持的系統上使用同一套接字偵聽 IPv4 和 IPv6 地址。

如果您想檢查您的系統是否支持雙棧 sockets,請使用socket.has_dualstack_ipv6()

Python 文檔中的代碼示例:

 import socket addr = ("", 8080) # all interfaces, port 8080 if socket.has_dualstack_ipv6(): s = socket.create_server(addr, family=socket.AF_INET6, dualstack_ipv6=True) else: s = socket.create_server(addr)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM