Php 使用$\u服务器['REMOTE\u ADDR'时获得超过1ip

Php 使用$\u服务器['REMOTE\u ADDR'时获得超过1ip,php,Php,我正在尝试为我的网站制作ip跟踪系统,然后将其插入sql 但我的问题是,一次单击,我的sql中就有2-4ip 我正在用这个编码 <?php include 'config.php'; $ip=$_SERVER['REMOTE_ADDR']; $referer=$_SERVER['HTTP_REFERER']; mysql_query("INSERT INTO `track`(`date`, `time`, `ip`, `referer`) VALUES ( CURDATE(

我正在尝试为我的网站制作ip跟踪系统,然后将其插入sql

但我的问题是,一次单击,我的sql中就有2-4ip

我正在用这个编码

<?php
include 'config.php';
$ip=$_SERVER['REMOTE_ADDR'];
$referer=$_SERVER['HTTP_REFERER'];
 mysql_query("INSERT INTO `track`(`date`, `time`, `ip`, `referer`)       
VALUES ( CURDATE(), NOW(),'".$ip."', '".$referer."')");
echo"<script type='text/javascript'>
 window.location.href='http://example.com';
 </script>";
?>
当任何人点击这一点,它是节省约4IP太不同,甚至有时不同的国家


为什么我的跟踪系统会出现这个问题。

如果你知道这段代码在做什么,你就会知道在一次执行中插入多个值是不可能的。我知道在一次执行中插入多个值是不可能的,但它正在发生,但我无法得到背后的原因@devonclary,它由4个不同的系统执行,而不是从一次执行中保存4个IP。与服务器访问日志比较..我试过了。10天当我点击save 2-4ips@Devon时,我也尝试了我自己
function getRealIpAddr()  
{  
    if (isset($_SERVER['HTTP_CLIENT_IP']))  
    {  
        $ip=$_SERVER['HTTP_CLIENT_IP'];  
    }  
    elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']))  
    //to check ip is pass from proxy  
    {  
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];  
    }  
    else 
    {  
        $ip=$_SERVER['REMOTE_ADDR'];  
    }  
    return $ip;  
}