我需要浏览器的客户端(客户)IP地址。
这是php中的客户端页面
<?php
$xml_request = '<XMLRequest>
<RequestType>ServiceRequest</RequestType>
<RequestLogin>test</RequestLogin>
</XMLRequest>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://testserver.com/test_xml/request.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_ENCODING,'gzip');
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_request);
echo curl_exec($ch); curl_close($ch);
?>
这是我的服务器页面
php中的'http://testserver.com/test_xml/request.php'
$service_request = file_get_contents('php://input');
echo 'Client IP Address: '. $_SERVER['REMOTE_ADDR'];
但是这里的#ECHO&#39;我自己的服务器IP。
如何将客户端浏览器IP传送到我的服务器
答案 0 :(得分:2)
您正在从您自己的服务器执行http请求,这就是您获取服务器IP的原因。要解决您的问题,您必须在客户端页面中进行更改(例如,向XML请求添加其他参数或添加带有客户端IP地址的自定义标头)
谢谢。
答案 1 :(得分:1)
您是否在托管该网站?然后,当您浏览网站时,它会显示您自己的IP。
答案 2 :(得分:0)
它不会像那样工作,因为你从客户端页面调用Server页面,它们都位于你的服务器上并使用PHP。因此,在您的场景中,服务器会询问自己的IP地址(客户端和服务器是相同的)。
您可以将$_SERVER['REMOTE_ADDR']
放在您的客户端页面上。但我也不明白为什么你有一个&#39;客户&#39;和服务器&#39;页面都用PHP编写,一个用curl调用另一个。这似乎是一种可怕的做法。
答案 3 :(得分:0)
正如Jumes所说,您正在使用正确的服务器变量。如果您从服务器控制台[或其他方法]运行脚本,则会显示您的服务器IP地址。
您可能希望尝试从具有不同公共IP地址的不同计算机运行客户端脚本,以查看可见的差异。