Binden IPv6-Adresse zu Python-Buchse als Quell-ip-Adresse
Ich früher den code unten ein zu binden IPv4-Adresse Python-Buchse als Quell-ip-Adresse.
import socket
true_socket = socket.socket
def bound_socket(*a, **k):
sock = true_socket(*a, **k)
sock.bind((sourceIP, 0))
return sock
socket.socket = bound_socket
Nicht über code-Arbeit für die IPv6-Adresse? Wenn nicht, wie kann ich das binden einer IPv6-Adresse?
Vielen Dank im Voraus!
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie versuchen, diese, um eine IPV6-Adresse, ist es zu empfehlen, dass Sie verwenden
socket.getaddrinfo
wird es wieder alle die verschiedenen-Adresse IPV4-und IPV6-Sie können Sie alle binden oder einfach nur, was immer Sie wollen/brauchen.Wenn Sie wirklich wollen, eine umfangreiche Lösung, Sie könnten erweitern Sie Ihre Lösung zu verwenden
getaddrinfo()
:Diese gibt
Diese sind die Parameter, sollten Sie eine Fassung mit:
Jetzt haben Sie so viele Steckdosen, wie Sie Protokolle haben und Sie nutzen zu können. (Ach, die
IPV6_V6ONLY
funktioniert nicht unter älteren Windows-Versionen...)Wenn Sie eine bestimmte host-name/IP zu binden, tun
und wählen die richtige Adresse/Protokoll-Familie, für Sie:
etc.
2
vs10
sindAF_INET
vs.AF_INET6
;socket.AI_PASSIVE
bedeutet, dass Sie benötigen diese Adresse fürbind()
ing.Dies sollte den trick tun... einstellen der Adresse der Familie.