2017-02-23 3 views
2

Ich habe ein einfaches PHP-Skript, das Benutzer IP-Adressen protokolliert, wenn sie eine Verbindung zu meiner Website herstellen, verwendet meine Website CloudFlare. Ich benutze $_SERVER["HTTP_CF_CONNECTING_IP"];, um die IPV4-Adresse des Clients zurückzugeben, so dass es in einer Datei mit dem Datum und der Uhrzeit protokolliert werden kann, aber manchmal protokolliert es eine IPV6-Adresse.Cloudflare Header zurück IPV6 Adresse

if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { 
    $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; 
} 
$filename = 'loggedips.txt'; 
$myfile = fopen($filename, "r") or die("Unable to log IP!"); 
$string = fread($myfile,filesize($filename)).date(DATE_RFC2822)." -- $ip\r\n"; 

$fp = fopen($filename, 'w') or die("Unable to log IP!"); 
fwrite($fp, $string); 
fclose($fp); 

In meinen Logs ich eine Mischung aus IPv4-Adressen zu sehen bin und IPV6-Adressen
Thu, 23 Feb 2017 19:08:40 +0100 -- 99.253.44.66
Thu, 23 Feb 2017 19:10:14 +0100 -- 2003:00o1:4hc0:e68c:3113:7l06:2qf1:6e84

und Adressen Protokollierung IPV6 ist nichts für mich, so dass ich frage mich, wie ich dieses Problem beheben könnte Problem, damit ich nur IPV4-Adressen protokollieren kann. Und was verursacht dieses Problem?

Antwort

3

ist es nicht möglich mein Freund. Ihr Gast kann Ihren Server nicht mit seiner IPv4 oder IPv6 anrufen, nicht zur gleichen Zeit. und die IP, die er benutzt, hängt von seiner Netzwerkkonfiguration und von deiner ab.

Sie können seine Informationen nicht ohne seine Erlaubnis graben.

+0

Eigentlich fand ich einen PHP-Skript, die IPV6 zu IPV4 konvertiert und es funktioniert, ist die einzige Sache ist, dass die IPV6-Adressen, die protokolliert werden gehen cloudflare –

0

Sie können alle vom Client gesendeten Header sehen und untersuchen, indem Sie dieses Ergebnis manuell beobachten.

var_dump($_SERVER);die(); 
Verwandte Themen