从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) 关于在哪里可以在发送请求的计算机上找到更多信息的任何想法? 提前致谢!     

解决方法

仅当您在请求中传递IP时:
$registration_key = file_get_contents(\'http://example.com/register.php?ip=\'.$_SERVER[\'REMOTE_ADDR\'],false,$context);