HTTP_CLIENT_IP:可通过http头伪造
HTTP_X_FORWARDED_FOR:可通过http头伪造
REMOTE_ADDR:可能是用户真实IP也可能是代理IP

服务端获取IP地址 http://www.taoyiz.com/util/ip 其代码如下:

$s_onlineip = getenv(‘HTTP_CLIENT_IP’);
echo “HTTP_CLIENT_IP:”.$s_onlineip.”
n”;
$s_onlineip = getenv(‘HTTP_X_FORWARDED_FOR’);
echo “HTTP_X_FORWARDED_FOR:”.$s_onlineip.”
n”;
$s_onlineip = getenv(‘REMOTE_ADDR’);
echo “REMOTE_ADDR:”.$s_onlineip.”
n”;
$s_onlineip = $_SERVER['REMOTE_ADDR'];
echo “$_SERVER['REMOTE_ADDR']:”.$s_onlineip.”
n”;

客户端代码:
伪造IP测试:

$url = ‘http://www.taoyiz.com/util/ip’;
$data_string = ‘test=test’;
$URL_Info    =    parse_url($url);
$request = ”;
if (!isset($URL_Info["port"]))
$URL_Info["port"]=80;
$request.=”POST “.$URL_Info["path"].” HTTP/1.1n”;
$request.=”Host: “.$URL_Info["host"].”n”;
$request.=”Referer: “.$URL_Info["host"].”n”;
$request.=”Content-type: application/x-www-form-urlencodedn”;
$request.=”X-Forwarded-For:192.168.1.4n”;//HTTP_X_FORWARDED_FOR的值
$request.=”client_ip:192.168.1.5n”;//HTTP_CLIENT_IP的值
$request.=”Content-length: “.strlen($data_string).”n”;
$request.=”Connection: closen”;
$request.=”n”;
$request.=$data_string.”n”;

$fp = fsockopen($URL_Info["host"] $URL_Info["port"]);
fputs($fp $request);
$result = ”;
while(!feof($fp)) {
$result .= fgets($fp 1024);
}
fclose($fp);
echo $result;

输出:

HTTP_CLIENT_IP:192.168.1.5
HTTP_X_FORWARDED_FOR:192.168.1.4
REMOTE_ADDR:127.0.0.1
$_SERVER['REMOTE_ADDR']:127.0.0.1

代理IP测试:

$cUrl = curl_init();
curl_setopt($cUrl CURLOPT_URL $url);
curl_setopt($cUrl CURLOPT_RETURNTRANSFER 1);
curl_setopt($cUrl CURLOPT_HEADER 1);
curl_setopt($cUrl CURLOPT_USERAGENT “Mozilla/99.99″);
//curl_setopt($cUrl CURLOPT_TIMEOUT 10);
curl_setopt($cUrl CURLOPT_PROXY ’125.77.194.103:80′);
$c = curl_exec($cUrl);
curl_close($cUrl);
echo $c;

输出:

HTTP_CLIENT_IP:
HTTP_X_FORWARDED_FOR:
REMOTE_ADDR:125.77.194.103
$_SERVER['REMOTE_ADDR']:125.77.194.103

最新文章

  1. C和指针 第十三章 习题
  2. linker command failed with exit code 1 (use -v to see invocation)
  3. WinForm程序执行JS代码的多种方法以及使用WebBrowser与JS交互
  4. android:windowSoftInputMode及其他部分属性用法
  5. 微信公众号开发笔记(C#)
  6. hdu3336
  7. HDOJ2004成绩转换
  8. Storm概念介绍
  9. String,StringBuilder,StringBuffer
  10. DataGrid 如何得到DataGridRow 和DataGridCell 对象
  11. CRMEB系统开发文档
  12. C# 数组、HashSet等内存耗尽的解决办法
  13. C#_02.16_基础七_.NET表达式&运算符
  14. BZOJ1880或洛谷2149 [SDOI2009]Elaxia的路线
  15. css样式,高斯模糊
  16. Quartz框架多个trigger任务执行出现漏执行的问题分析--转
  17. LeetCode DB : Delete Duplicate Emails
  18. DexHunter脱壳神器分析
  19. 试着用React写项目-利用react-router解决跳转路由等问题(三)
  20. java如何计算两个日期之间相差多少天?

热门文章

  1. 利用DataImportHandler建索引时一直无法完成
  2. Balancing Symbols
  3. Entity Framework技巧系列之十四 - Tip 56
  4. 第5章 字符串----char与String
  5. FUSE and File System
  6. ios 中NSString的一些调用
  7. Uploadify自定义提示信息
  8. js跨域访问,No ‘Access-Control-Allow-Origin‘ header is present on
  9. QML中MouseArea元素的介绍
  10. git 使用总结