在AJAX表单提交后获取访问者的IP地址

时间:2012-05-15 21:40:09

标签: php javascript jquery

我有一个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'];
}

2 个答案:

答案 0 :(得分:24)

$_SERVER['REMOTE_ADDR']将为您提供客户端的IP地址。但是,由于您可能使用与服务器客户端相同的计算机,因此您可以获得相同的IP,这是正常的。将网站托管到Web服务器并从另一台计算机远程访问后,您将获得该远程计算机的地址。

所以你不需要做更多事情。您的代码已按预期工作。

答案 1 :(得分:0)

ajax请求仍然来自客户端,应该是客户端IP而不是服务器。