HTML Exxterne IPV4 und IPV6 auf eigener Webseite anzeigen

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
18.482
Moin!

Google, Pardon: Bing findet mal wieder alles und damit nichts.

Ich möchte mittels meiner gehosteten Website die beiden möglichen externen IPs des Aufrufenden anzeigen.
Wie erfahre ich die bzw. ob dort IPV6 noch nicht zur Verfügung steht?

Alles möglichst ohne fremde Seiten per I-Frame o.ä. einzublenden.
Einfach nur als Information.

CN8
 
Brauchst irgendwas serverseitiges (PHP, Node.js, Phython, Ruby, C#, etc.).
Nur mit HTML geht das nicht.
 
Rein in HTML wahrscheinlich garnicht. Per z.B. PHP im Hintergrund geht das, solange dem Skript vom Webserver die passenden Daten mitgegeben werden.
 
cumulonimbus8 schrieb:
Google, Pardon: Bing findet mal wieder alles und damit nichts.
Warum schreibst du nicht ein Mal normal?! Dein Geschreibsel versteht man immer erst, wenn man Glück hat, nach dem fünften Mal lesen...

Richte nen A- und AAAA-Record auf nem Host ein und lass den Client darauf verbinden, wo du dann die IP-Adresse ausgibst. Anders kommst du nicht daran. Wie du die Anzeige machst, musst du dir dann selbst mittels JS oder sonstwas überlegen. Einfach in nem IFrame anzeigen wäre aber das einfachste Mittel.
 
  • Gefällt mir
Reaktionen: Physikbuddha und BlackMark
Yuuri schrieb:
Warum schreibst du nicht ein Mal normal?! Dein Geschreibsel versteht man immer erst, wenn man Glück hat, nach dem fünften Mal lesen...
Er nimmt für seine Beiträge immer Google Translate. Anders kann ich mir das nicht erklären.
 
  • Gefällt mir
Reaktionen: Myron und Yuuri
$_SERVER['REMOTE_ADDR']
s. auch https://stackoverflow.com/questions/3003145/how-to-get-the-client-ip-address-in-php
https://stackoverflow.com/questions...to-retrieve-a-users-correct-ip-address-in-php

Beide wirst du aber nicht kriegen, weil der Server immer nur die IP sieht und anzeigt, mit der sich verbunden wurde. Da die Adresse nur über eine Verbindung aufgebaut wird geht das nicht. Das ginge nur dann, wenn du noch einen zweiten Request machst bei der du eine v6 Verbindung erzwingst (weil die meisten Verbindungen immernoch auf v4 als Fallback gehen).
 
  • Gefällt mir
Reaktionen: GustlPC
@Yuuri & Sparta8
Weist man nicht auf eigene suchen hin kommen Hinweise doch dies und das in 5 Sekunden auf Google gefunden zu haben - natürlich ohne die Suchanfrage zu nennen.
Weist man drauf hin erfolglos gesucht zu haben bekommt dafür auch aufs Dach.

@Sparta8
Ich könnte nicht grundlos von einer gehosteten Website berichtet haben. PHP z.B. steht dort zur Verfügung.

@Mihawk90
Das ist eine Menge Lesestoff. Ich bekomme die externe IPV4. Aber woher bekomme ich die V6 →
Beide wirst du aber nicht kriegen
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.

----

Zwischenfrage, der Anzeige in PHP wegen: (alterntive Codes die auf der selben Info beruhen):
echo ("IP A = ".$ip."\n");

echo ("\n"."IP B = ".get_ip_address());
Hier hoffe ich unter Chrome (wenn das denn wieder das Problem sein sollte) auf wenigstens einen Zeilenumbruch. Bricht aber nix um, dafür bekomme ich ein Leerzeichen vor dem IP B.
IP A = 111.222.333.444 IP B = 111.222.333.444

Wie bekomme ich denn nun mal einen simplen Zeilenumbruch hin?


CN8
 
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

1573847274442.png

  • 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]

1573848282643.png


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.
 
  • Gefällt mir
Reaktionen: Nase
(Lese ich manche Fragen von machen TOs dann halte ich meine Schachtelsätze für geradezu Gold da ich zusehe nötige Infos zu geben. So viele wie möglich und nötig, und auch zwischen den Zeilen.)


Vielleicht denkst du zu kompliziert?
Ich will selbst, natürlich gehostet, einfach eine Seite (Page) anbieten die jedermann [OK, mehr ich und ein paar Leute in der Firma…] aufruft und die schnell und einfach desse IPV4 und neu die IPV6 anzeigt. Kein weiteres Hexenwerk. Eine Seite die ich frisieren kann noch etwas Mehrwert zu liefern. Code den ich evtl. anderswo einflechten kann.
→ Hintergedanke sind diese lästigen Zwangstrennungen. Aber auch ein bisschen mehr[*].

Skriptzeilen für IPV4 habe ich. Jetzt bräuchte ich was für V6, und das eben für den eigenen Anschluss, »meine« externe IP. Eigentlich ganz bescheiden. Oder sind geläufige Skriptsprachen den üblichen Protokollen hinterher?

CN8


[*] Mir ist unklar wie ich meine Fritz!Box überrede über einen DynDNS-Dienst eine Adresse zum Zugriff verfügbar zu machen. Eine Update-URL jenes Dienstes soll ich ja bekanntlich mit der aktuellen V4 und V6 füttern, aber die müsste ich erst mal haben. → Nein, ich habe da keine Manuelle vorsintflutliche Lösung im Auge; aber wer/was liefert mir für was-weiß-ich Batch, WSH (nein, nicht PS) diese Werte um eine selbstgezimmerte URL abfeuern zu lassen (auch, um einen anderen Ort kurzfristig zu meinem Ort zu machen)?
 
cumulonimbus8 schrieb:
die schnell und einfach desse IPV4 und neu die IPV6 anzeigt. Kein weiteres Hexenwerk.
Tja, dieses "Hexenwerk" geht aber nicht anders. Du musst einen Query auf einen A-Host absetzen und der muss die IP zurückgeben - genauso auf einen AAAA-Host. Die beiden nimmst du und zeigst sie an. Du kannst am Client nichts auslesen. Vom Server aus kannst du genauso nichts auslesen, ergo nimmst du das, was der Client dir bei der Verbindung mitgibt. Und das ist nun mal die IP-Adresse - je nachdem, ob er sich über v4 oder v6 verbunden hat. Nach der initialen Verbindung, kannst du den Fluss steuern, indem du den Client veranlasst, bestimmte Requests abzusetzen, womit du die andere IP-Adresse erhälst.
 
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.
Bitte auch den Rest meines Posts im Context lesen...
Schon alleine der Rest des Satzes den du zitiert hast stellt doch klar wo das Problem ist.

Die Verbindung zu deinem Server wird immer nur mit einer IP hergestellt. Und zwar entweder IPv4 oder IPv6, je nachdem wie sich der Client verhält.
Die IP im $_SERVER Array ist immer die eine, mit der sich verbunden wurde.
Lösungsansätze haben ich und auch @Yuuri ja schon genannt.

cumulonimbus8 schrieb:
Mir ist unklar wie ich meine Fritz!Box überrede über einen DynDNS-Dienst eine Adresse zum Zugriff verfügbar zu machen.
Naja, das hängt ja zunächst erstmal vom verwendeten DynDNS Dienst ab. Als ich sowas vor Jahren mal benutzt habe hat man die IP aber auch nicht selbst eingegeben. Wenn die Update-URL aufgerufen wird, wird idR vom Dienst einfach nur deine IP ausgelesen und hinterlegt. Soweit ich weiß hat die Fritz Box doch auch schon ne fertige Einrichtung für DnyDNS Dienste. Im Zweifel einfach mal bei deinem DynDNS Anbieter anfragen.
 
Der Dienst ist dynv6.net. Und der will - so weit es offensichtlich ist - einen Update-Link in dem ich eine V4 oder\und eine V6 mitgeben muss. Heißt für den Dummi wie mich: beide Infos jetzt ermitteln und durchreichen.
Die Box scheint den Deint nicht zu kennen, doch wäre es genial einfach wenn mir AVM Systemvariablen gäbe die ich im Dyn-DNS-Dialog einsetzen könnte.

Weiterhin ist mir absolut nicht ersichtlich, warum mir mein Provider nicht eine V4 und eine V6 zugleich zuteilen könnte - konsequent müsste dem so sein und es liegt an der Gegenstelle im WWW die ich erreiche »auf welcher Nummer sie zurückruft«.
Deakti4te ich V4 in der Box (was natürlich nicht sehr genial wäre) muss es per V6 laufen - und umgekehrt. Also muss beides existieren??!

CN8
 
cumulonimbus8 schrieb:
[*] Mir ist unklar wie ich meine Fritz!Box überrede über einen DynDNS-Dienst eine Adresse zum Zugriff verfügbar zu machen. Eine Update-URL jenes Dienstes soll ich ja bekanntlich mit der aktuellen V4 und V6 füttern, aber die müsste ich erst mal haben. → Nein, ich habe da keine Manuelle vorsintflutliche Lösung im Auge; aber wer/was liefert mir für was-weiß-ich Batch, WSH (nein, nicht PS) diese Werte um eine selbstgezimmerte URL abfeuern zu lassen (auch, um einen anderen Ort kurzfristig zu meinem Ort zu machen)?

Wieso kommt nicht direkt diese Fragestellung in der Themeneröffnung zusammen mit dem DynDNS-Dienst den du nutzt? Das würde die Sache deutlich einfacher machen und man könnte auch direkt Hilfe leisten und muss dir nicht erst alles aus der Nase ziehen.

Die Fritzbox kann hat durchaus Platzhalter für die IPv4/6-Adressen:
1574114501070.png

Quelle: https://service.avm.de/help/de/FRITZ-Box-Fon-WLAN-7490/016/hilfe_dyndns
(Gilt auch für andere Fritzboxen analog)

Für DynV6.com hab ich nach 10 Sekunden googlen folgende URL gefunden die zum Ziel führen sollte.
1574114643052.png

Quelle: https://www.tutonaut.de/anleitung-dauerhaften-gratis-dyndns-dienst-in-der-fritzbox-einrichten/

Der Dienst gibt dir doch sogar exakt die Angaben vor, die man in der Fritzbox eingeben muss, wenn du in deiner erstellten Zone im Reiter "Instructions" ganz nach unten zum Bereich "Fritz!OS (German)" scrollst.
Diese Infos musst du einfach nur noch 1 zu 1 in der Fritzbox eintragen.

VG
Myron
 
Zuletzt bearbeitet:
cumulonimbus8 schrieb:
Weiterhin ist mir absolut nicht ersichtlich, warum mir mein Provider nicht eine V4 und eine V6 zugleich zuteilen könnte
Weil v4 Adressen seit langem aufgebraucht sind und viele Provider einfach keine Blöcke mehr kriegen. Die verbliebenen werden genutzt um eine Kompatibilitätsschicht zu nutzen, mit der du von außen eine IPv4 hast, dein Anschluss aber nur v6 ist.

cumulonimbus8 schrieb:
es liegt an der Gegenstelle im WWW die ich erreiche »auf welcher Nummer sie zurückruft«.
Nein tut es nicht, die Antwort kommt immer auf die IP wo die Anfrage herkam.
 
Zurück
Oben