Javascript 使用Jquery时获取用户IP

Javascript 使用Jquery时获取用户IP,javascript,php,jquery,Javascript,Php,Jquery,好的,我使用jquery脚本使用get方法从另一个文件中提取信息,如下所示: $(document).ready(function() { $('#calculate').click(function(){ $.ajax({ type: 'GET', url: '/system/calculate.php', data: 'amount=' + $('#buyamount').val() + '&coin=<?php echo

好的,我使用jquery脚本使用get方法从另一个文件中提取信息,如下所示:

$(document).ready(function() {
$('#calculate').click(function(){
    $.ajax({
        type: 'GET',
        url: '/system/calculate.php',
        data: 'amount=' + $('#buyamount').val() + '&coin=<?php echo $coin; ?>' ,
        success: function(msg) {
            $('#totalprice').html(msg);
        }
    });
});
});
$(文档).ready(函数(){
$(“#计算”)。单击(函数(){
$.ajax({
键入:“GET”,
url:“/system/calculate.php”,
数据:“金额=”+$(“#购买金额”).val()+”&硬币=”,
成功:功能(msg){
$('#totalprice').html(msg);
}
});
});
});
我想在数据库中设置他们的ip地址,但我无法在该计算文件中设置,因为他们实际上没有访问该页面来设置ip地址。现在,我不想使用get函数发送他们的IP地址,因为他们可以简单地将?IP=编辑为他们想要的任何内容

我尝试在Calculate文件中设置它,但它们的ip设置为::1


tl;dr:使用jquery从另一个文件运行scrip,无法设置IP,因为他们不会亲自访问该页面。

您可以在php中获取客户端IP,并且该IP可以插入数据库中

function getIp() {

        $ip = '';



        if (isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) {

            $ip = filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP);
        }



        if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

            if (strpos(filter_var($_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP), ',') !== false) {

                $temp_ips = explode(',', filter_var($_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP));
            }



            if (!empty($temp_ips)) {

                $ip = $temp_ips[count($temp_ips) - 1];
            } else {

                $ip = filter_var($_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP);
            }
        }



        if (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && !empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {

            $ip = filter_var($_SERVER['HTTP_CF_CONNECTING_IP'], FILTER_VALIDATE_IP);
        }



        return $ip;
    }

尝试查看Jquery.Post?将其放入表单并异步发布表单。这将在服务器端。我不能说我完全理解您的意图,但我想强调这句话:“因为他们可以简单地编辑…”。对这是JavaScript:用户可以自己编辑代码。如果某些与安全相关的问题需要执行的确定性,那么您将希望在服务器端处理它——也许可以根据请求确定某人的IP地址。如果您希望在客户端获得IP:但这没有意义。最好是从后端的请求对象获取IP,而不考虑技术(php、ruby、java等)。