【问题标题】:Get IP address of visitor after an AJAX form submit提交 AJAX 表单后获取访问者的 IP 地址
【发布时间】:2012-05-15 21:40:09
【问题描述】:

我有一个 HTML 表单。当访问者提交表单时,会调用一个 javascript 方法。 此方法向我的服务器的 php 文件发送 AJAX 请求。 我的问题是我需要获取访问者的 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'];
}

【问题讨论】:

  • 无论是浏览器发出带有js(ajax)的请求还是正常的页面加载——你看到的ip地址都是一样的:客户端(浏览器)的。

标签: php javascript jquery


【解决方案1】:

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

因此,您无需再做任何事情。您的代码已按预期运行。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 2011-04-15
      相关资源
      最近更新 更多