2017-02-23 118 views
2

我有一個簡單的php腳本,當他們連接到我的網站時記錄用戶的IP地址,我的網站使用CloudFlare。我使用$_SERVER["HTTP_CF_CONNECTING_IP"];來返回客戶端IPV4地址,以便它可以使用日期和時間登錄到文件中,但有時它會記錄IPV6地址。Cloudflare Header返回IPV6地址

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); 

在我的日誌我看到IPv4地址的組合地址和IPv6地址
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

和記錄的IPv6地址是沒有用的我,所以我想知道我怎麼能解決這個問題,所以我可以登錄IPV4地址。導致此問題的原因是什麼?

回答

3

這是不可能的我的朋友。您的客人無法通過他的IPv4IPv6與您的服務器通話,而不是在同一時間。而他使用的女巫IP取決於他的網絡配置和你的。

未經允許,您不能挖掘他的信息。

+0

其實,我發現一個PHP腳本,將IPV6轉換爲IPV4,它的工作原理,唯一的是,獲取日誌記錄的IPV6地址轉到cloudflare –

0

您可以通過手動觀看此結果來查看並檢查所有客戶端發送的標頭。

var_dump($_SERVER);die();