Wie bekomme ich die externe IP eine socket in Python?
Wenn ich rufe socket.getsockname()
auf ein socket-Objekt, es gibt ein Tupel von meinem Rechner die interne IP und der port. Allerdings würde ich gerne wieder an meine externe IP. Was ist der billigste, effizienteste Art und Weise, dies zu tun?
- Andere große website, die bietet eine preiswerte Lösung ist es, eine HTTP-Anforderung von icanhazip.com
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht möglich ohne eine Zusammenarbeit von einem externen server, weil es könnte eine beliebige Anzahl von NATs zwischen Ihnen und dem anderen computer. Wenn es ein benutzerdefiniertes Protokoll erstellen, könnten Sie Fragen, das andere system zu melden, welche Adresse es verbunden wird.
Nur so kann ich mir vorstellen, dass das garantiert es geben, um Sie zu treffen, ein service wie http://whatismyip.com/, um es zu bekommen.
https://github.com/bobeirasa/mini-scripts/blob/master/externalip.py
import socket
s = Buchse.socket(socket.AF_INET, socket.SOCK_STREAM)
en.connect(("msn.com",80))
en.getsockname()
Müssen Sie mit einem externen system, dies zu tun.
DuckDuckGo die IP-Antwort wird Ihnen genau, was Sie wollen, und in JSON!
Unter der Adresse vorgeschlagen, in die Quelle der http://whatismyip.com
Müssen Sie die Verbindung zu einem externen Server Und Erhalten Sie Ihre Öffentliche IP Aus Der Antwort
wie diese: