Hallo zusammen,
ich schlage mich schon seit Wochen damit herum auf einer Internet Seite sie IPv4 und IPv6 anzuzeigen.
Mittlerweile bin ich schon so weit gekommen, das ich unter Apache es eingestellt habe das jeweils 1 php Skript mit IPv4 und IPv6 abgerufen wird und die Werte an die Hauptseite übergeben. Soweit auch kein Problem. Kommt einer per IPv4 only auf die Seite, wird IPv4 angezeigt, kommt einer per IPv6 auf die Seite und besitzt auch eine IPv4 so werden beide angezeigt.
Nun aber das Problem:
Kommt einer per IPv6 auf die Seite, hat aber keine IPv4 (weiso auch immer), dann bekomme ich keine IP als Ausgabe (aktuell die Info das kein JS aktive ist) Aktiviere ich v4 wieder ist alles OK.
Gleichzeitig soll geprüft werden ob die fehlende Infos nicht durch einen Addon geblockt wird (wie z.B. noScript oder Deaktivierung von JS im Browser)
Sieht jemand wo ein Fehler ist oder hat jemand einen besseren Vorschlag wie ich es realisieren kann?
Aufbau soll wie folgt sein:
IPv4 only = IPv4
IPv6 only = IPv6
IPv4 and IPv6 = beide anzeigen
wird keine angezeit = Prüfen ob per Skript geblockt wird.
hier einmal die Codeschnipsel die ich erstellt habe
startseite.html
v4/index.php
v6/index.php
Danke schon mal
ich schlage mich schon seit Wochen damit herum auf einer Internet Seite sie IPv4 und IPv6 anzuzeigen.
Mittlerweile bin ich schon so weit gekommen, das ich unter Apache es eingestellt habe das jeweils 1 php Skript mit IPv4 und IPv6 abgerufen wird und die Werte an die Hauptseite übergeben. Soweit auch kein Problem. Kommt einer per IPv4 only auf die Seite, wird IPv4 angezeigt, kommt einer per IPv6 auf die Seite und besitzt auch eine IPv4 so werden beide angezeigt.
Nun aber das Problem:
Kommt einer per IPv6 auf die Seite, hat aber keine IPv4 (weiso auch immer), dann bekomme ich keine IP als Ausgabe (aktuell die Info das kein JS aktive ist) Aktiviere ich v4 wieder ist alles OK.
Gleichzeitig soll geprüft werden ob die fehlende Infos nicht durch einen Addon geblockt wird (wie z.B. noScript oder Deaktivierung von JS im Browser)
Sieht jemand wo ein Fehler ist oder hat jemand einen besseren Vorschlag wie ich es realisieren kann?
Aufbau soll wie folgt sein:
IPv4 only = IPv4
IPv6 only = IPv6
IPv4 and IPv6 = beide anzeigen
wird keine angezeit = Prüfen ob per Skript geblockt wird.
hier einmal die Codeschnipsel die ich erstellt habe
startseite.html
HTML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="de_DE" lang="de_DE" xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
$regs="";
$ip = $_SERVER[REMOTE_ADDR];
?>
<script src="http://myip-ipv6.domain.de" type="text/javascript"></script>
<script src="http://myip-ipv4.domain.de" type="text/javascript"></script>
<script language="javascript">
function start(){
ip4 = ipv4();
ip6 = ipv6();
}
</script>
</head>
<body onLoad="start();">
if (ereg("^(222.20.(1[6-9][0-9])|172.16.0).[0-9]{1,3}$",$ip, )) {
?>
<div id="v4"></div>
<br>
<?php
}
elseif (ereg("^(20D2:408((:[a-f0-9]{0,4}){1,6}))$",$ip, $regs)) {
?>
v6 <div id="v6"><b>Zur richtigen Anzeige dieser Seite wird Javascript benötigt!</b></div>
v4 <div id="v4"></div>
<?php
}
?>
v4/index.php
PHP:
<?php
$ip = "Ihre IPv4-Adresse lautet: $_SERVER[REMOTE_ADDR]";
echo "function ipv4()
{
document.getElementById('v4').innerHTML = '$ip';
}";
?>
v6/index.php
PHP:
<?php
$ip = "Ihre IPv6-Adresse lautet: $_SERVER[REMOTE_ADDR]";
echo "function ipv6()
{
document.getElementById('v6').innerHTML = '$ip';
}";
?>
Danke schon mal