如何查找客户端(客户)的IP地址


How to find IP address of a client (customer)

我需要浏览器的客户端(客户)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"我自己的服务器IP。

如何将客户端浏览器IP连接到服务器

您正在从自己的服务器进行http请求,这就是您获得服务器IP的原因。为了解决您的问题,您必须在客户端页面中进行更改(例如,向XML请求添加附加参数或添加带有客户端IP地址的自定义标头)

谢谢。

您是该网站的主机吗?然后,当你浏览网站时,它会显示你自己的IP。

它不会像那样工作,因为您从客户端页面调用服务器页面,客户端页面位于服务器上并使用PHP。因此,在您的场景中,服务器会询问自己的IP地址(客户端和服务器是相同的)。

你可以把$_SERVER['REMOTE_ADDR']放在你的客户端页面上。但我也不明白为什么有一个"客户端"和一个"服务器"页面都用PHP编写,其中一个用curl调用另一个。这似乎是一种可怕的做法。

正如Jumes所回答的,您使用的是正确的服务器变量。如果您从服务器控制台[或通过其他方法]运行脚本,则会显示您的服务器Ip地址。

您可能想尝试从不同的计算机[具有不同的公共IP地址]运行客户端脚本,以查看明显的差异。