主要原因在于,IP地址与http-referer变量,现在是可以伪造出来的,呵呵。
例1,php伪造referer的方法:
php(前提是装了curl):
php(不装curl用sock)
例2,php伪造ip。
<?php
$fp = fsockopen ("192.168.0.18", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>n";
} else {
$msg="get /003.php http/1.0rn";
$msg.="host: 192.168.0.18rn";
$msg.="referer: http://www.baidu.comrn";
$msg.="client-ip: 1.1.1.1rn";
$msg.="x-forwarded-for: 1.1.1.1rn"; //主要是这里来构造ip
$msg.="connection: closernrn";
fputs ($fp, $msg);
while (!feof($fp)) {
echo fgets ($fp,1024);
}
fclose ($fp);
}
记住用fsockopen时,命令最后一定要有rnrn,不然会超时。
其实,可以用$_server['remote_addr']来得到正确ip,但为了得到代理访问ip,而采用的得到ip的方法往往不是$_server['remote_addr'],这就为我们提供了机会。
注意,以上在现实中用处不是很大,因为这好像对第三方统计没有用,而现在都是用的第三方统计。