2011-04-15 25 views
2

我有兩個頁面,一個發送的file_get_contents請求:獲取IP從的file_get_contents請求

$postdata = http_build_query(array('install' => 'true', 'url' => $_SERVER['SERVER_NAME'], 'key' => 'XXXXXXXXXXXX')); 

$opts = array('http' => 
    array(
     'method' => 'POST', 
     'header' => 'Content-type: application/x-www-form-urlencoded', 
     'content' => $postdata 
    ) 
); 

$context = stream_context_create($opts); 
$registration_key = file_get_contents('http://example.com/register.php', false, $context); 

和頁面接收呼叫(http://example.com/register.php)和我試圖抓住請求來自何處的IP無濟於事。我曾嘗試:

$_SERVER['HTTP_CLIENT_IP']

$_SERVER['HTTP_VIA']

$_SERVER['HTTP_X_FORWARDED_FOR']

$_SERVER['REMOTE_ADDR'](IP,但計算機發送或接收的請求不是一個IP)

任何想法,我可以在發送請求的計算機上找到更多信息?

在此先感謝!

+0

如果你已經使用'_context_create'你可以只增加了' '頭'=>'和'「\ NX-轉發,爲:$ _SERVER [REMOTE_ADDR]「',這樣你就可以像register $ _SERVER ['HTTP_X_FORWARDED_FOR']'那樣在register.php腳本中接收它。 – mario 2011-04-15 22:59:52

回答

4

只有當你將請求通過IP:

$registration_key = file_get_contents('http://example.com/register.php?ip='.$_SERVER['REMOTE_ADDR'], false, $context); 
+0

我同意,服務器正在向register.php發送請求,所以如果有的話,ip將是服務器的。 – Galen 2011-04-15 22:55:38

+0

有道理......這就是我想的但想確定的。謝謝! – RANGER 2011-04-16 04:23:57