cumulonimbus8 schrieb:
Weist man drauf hin erfolglos gesucht zu haben bekommt dafür auch aufs Dach.
Ich jedenfalls könnte dir öfter helfen. Aber deine ständigen Schachtelsätze und komischen Umschreibungen, »Markierungen« und ähnlicher Kram machen es mir immer schwer, das Problem wenigstens halbwegs vollständig zu sehen und somit vergeht mir dann extrem schnell die Lust.
cumulonimbus8 schrieb:
Nun; gewisse Websites zeigen mir durchaus beide korrekt an [ich mein’; das hoffe ich doch, ich weiß die Daten ja nicht, wegen der dynamischen IP]. Also sollte ich doch auch die Info bekommen, ob V6 existiert und sie dann anzeigen.
Wie gesagt: Du brauchst erstmal einen Host, wo du die Seite auslieferst - der kann natürlich A und AAAA Records besitzen. Weiterhin brauchst du einen A-only und einen AAAA-only Host im DNS. Das kann schlussendlich natürlich trotzdem der selbe Host sein, auf welchem auch die Webseite läuft. Es geht nur darum, dass du einmal einen Host via IPv4 only und einen via IPv6 only identifizieren kannst.
Verbindest du dich nun auf den Host mit der Webseite, prüfst du dort einfach welche Verbindung genommen wurde.
PHP:
$_SERVER["REMOTE_ADDR"]
Bedenke aber, dass auch Proxys dazwischen hängen können (Forward sowie Reverse) und die jegliche Header setzen können. Namentlich kenn ich da die Header
HTTP_CLIENT_IP
und
HTTP_X_FOWARDED_FOR
. Gibt bestimmt noch zich mehr...
Wenn es eine v4 IP ist, musst du zusätzlich auf den v6 only Host einen Request vom Client absetzen (= JS). Die v-only Hosts müssen dann auf eine Route, welche nur die IP ausliefert. Diese zeigst du dann schlussendlich einfach auf der Webseite an.
Beispiel: wieistmeineip.de
- Du gehst auf die Seite und bekommst eine x-beliebige IP angezeigt - eben jene, über die die Verbindung lief. Beim ersten Aufruf hier, stand da übrigens ne IPv6 - heißt dass der Host A und AAAA Records besitzt. [1]
- Anschließend wird geprüft, was für eine IP das ist.
- Danach wird hier ein JSONP Query via Script-Tag auf einen AAAA Host gemacht. Dieser gibt dann die IP-Adresse mit der entsprechend anderen IP zurück.
- Schlussendlich werden dir dann beide IP-Adressen auf einer Seite angezeigt.
- Wenn die Verbindung zu einem Host fehlschlägt, gibts entsprechend keine IP.
- Hier wird zusätzlich ein Ajax-Request abgesetzt, welcher das Tupel von IPv4 und IPv6 in deren DB verbindet. Wenn du die Seite neu lädst, bekommst du nämlich sofort beide IPs angezeigt, ohne den zusätzlichen Request.
[1]
Wie man sieht:
ipcheck-a.wieistmeineip.de
hat nur einen A-Record, ergo kann nur eine Verbindung über IPv4 eröffnet werden und
ipcheck-aaaa.wieistmeineip.de
besitzt analog dazu nur einen AAAA-Record.
wieistmeineip.de
und
www.wieistmeineip.de
besitzen jeweils A- und AAAA-Records, ergo kann dort über IPv4 und IPv6 verbunden werden.