我有一个HTML表单。当访问者提交表单时,会调用javascript方法。 此方法将AJAX请求发送到我的服务器的php文件。 我的问题是我需要获取访问者的IP地址。但由于AJAX请求调用php文件, $ _ SERVER ['REMOTE_ADDR'] 给了我服务器的地址。 在这种情况下,我如何获得访问者的IP? 谢谢
<form onsubmit="sendData(); return false;">
// some data here
</form>
function sendData(){
// do some work, get variables
$.ajax({
url:"/mypage.php",
type:"GET",
data: { name: e },
success : function(data) {
// do some work
},
error: function (xhr, ajaxOptions, thrownError) {
}
})
}
// in mypage.php
public function useData() {
$name=$_GET["name"];
$ip = $_SERVER['REMOTE_ADDR'];
}
答案 0 :(得分:24)
$_SERVER['REMOTE_ADDR']
将为您提供客户端的IP地址。但是,由于您可能使用与服务器和客户端相同的计算机,因此您可以获得相同的IP,这是正常的。将网站托管到Web服务器并从另一台计算机远程访问后,您将获得该远程计算机的地址。
所以你不需要做更多事情。您的代码已按预期工作。
答案 1 :(得分:0)
ajax请求仍然来自客户端,应该是客户端IP而不是服务器。