Seite 1 von 1
GetClientIP(): IPv4 oder IPv6?
Verfasst: 02.08.2018 21:00
von Kiffi
Hallö,
aus der
PB-Hilfe zu GetClientIP():
Diese Funktion gibt die IP-Adresse des Clients zurück und sollte nach EventClient() aufgerufen werden. Wenn die Verbindung eine IPv6-Verbindung ist, dann muss die zurückgegebene Adresse mit FreeIP() freigegeben werden.
Wie bekomme ich heraus, ob der zurückgegebene Wert eine IPv6-Verbindung ist, damit ich sie mit FreeIP() freigeben kann?
Danke im Voraus & Grüße ... Peter
Re: GetClientIP(): IPv4 oder IPv6?
Verfasst: 02.08.2018 21:44
von NicTheQuick
Wenn dein Server an einer IPV6-Adressen gebunden ist, dann kriegst du auch eine IPv6-Adresse von getClientIP() zurück. Ein Server kann immer nur entweder an IPv4 oder IPv6 gebunden sein.
Re: GetClientIP(): IPv4 oder IPv6?
Verfasst: 03.08.2018 11:05
von DrShrek
NicTheQuick hat geschrieben:Ein Server kann immer nur entweder an IPv4 oder IPv6 gebunden sein.
Zumindest intern kann ein Server beides nutzen.
Re: GetClientIP(): IPv4 oder IPv6?
Verfasst: 03.08.2018 11:54
von NicTheQuick
Ein Server im Sinne eines Computers kann das natürlich. Aber ein Netzwerksocket kann immer nur an eine IPv4- oder IPv6-Adresse oder jeweils alle IPV4- oder IPv6-Adressen gebunden sein. Okay, der Satz kann etwas verwirren. Vielleicht nochmal etwas klarer:
- Ein Socket kann sich an eine bestimmte IPv4-Adresse binden, z.B. 127.0.0.1 (localhost)
- Ein Socket kann sich an alle verfügbaren IPv4-Adressen gleichzeitig binden, das geht über 0.0.0.0
- Ein Socket kann sich an eine bestimmte IPv6-Adressen binden, z.B. ::1 (localhost)
- Ein Socket kann sich an alle verfügbaren IPv6-Adressen binden, das geht über ::/128
Man kann aber nicht einen Socket an eine IPv4- und an eine IPv6-Adresse gleichzeitig binden. Man kann einen Socket auch nicht an zwei verschiedene IPv4-Adressen oder zwei verschiedene IPv6-Adressen binden, es geht immer nur eine.