PHP获取真实IP及IP模拟方法解析


Posted in PHP onNovember 24, 2020

PHP获取用户真实IP方法1:

<?php
function GetIP(){
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
 $cip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
 $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif(!empty($_SERVER["REMOTE_ADDR"])){
 $cip = $_SERVER["REMOTE_ADDR"];
}
else{
 $cip = "无法获取!";
}
return $cip;
}
echo GetIP();
?>

PHP获取用户真实IP方法2:

<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else{
$ip = "Unknown";
}
echo $ip;
?>

PHP获取用户真实IP方法3:

<?php
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp ;
?>

PHP获取用户真实IP方法4:

<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP
?>

PHP获取用户真实IP方法5:

<?php
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
 $ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
 $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
 if($ip){
  array_unshift($ips, $ip); $ip = FALSE;
 }
 for($i = 0; $i < count($ips); $i++){
  if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){
  $ip = $ips[$i];
  break;
  }
 }
}
return($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo get_real_ip();
?>

PHP获取用户真实IP方法6:

<?php
if(getenv('HTTP_CLIENT_IP')){
$onlineip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR')){
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR')){
$onlineip = getenv('REMOTE_ADDR');
}
else{
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
echo $onlineip;
?>

获取用户真实IP原理:

客官看完了业界常用的获取用户真实IP方法后,发现有个共同规律,主要核心就是

HTTP_CLIENT_IP
HTTP_X_FORWARDED_FOR
REMOTE_ADDR

不同的演变,只是代码兼容性罢了!

如何模拟用户真实IP?

问:如果可以伪造模拟HTTP_CLIENT_IP,伪造模拟HTTP_X_FORWARDED_FOR,伪造模拟REMOTE_ADDR,不就可以达到追踪不到用户真实IP的目的了么?

答:楼上理解完全正确!如果做到这样完全可以通杀99%的获取用户真实IP,以用户IP为标识的系统!

支招【LET采集技巧】(curl、socket、fsocketopen、stream_socket_client):

如何模拟HTTP_CLIENT_IP?HTTP_CLIENT_IP可以模拟么?伪装HTTP_CLIENT_IP!

curl_setopt($curl, CURLOPT_HTTPHEADER, array (
'Client_Ip: '.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255),
));//优点:伪造成本低,通杀90%系统

如何模拟HTTP_X_FORWARDED_FOR?HTTP_X_FORWARDED_FOR可以模拟么?伪装HTTP_X_FORWARDED_FOR!

curl_setopt($curl, CURLOPT_HTTPHEADER, array (
'X-Forwarded-For: '.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255),
));//优点:伪造成本低,通杀90%系统

如何模拟REMOTE_ADDR?REMOTE_ADDR可以模拟么?伪装REMOTE_ADDR!

curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($curl, CURLOPT_PROXY, '1.1.1.1:8080');//自行百度获得普匿代理IP即可,高匿代理IP更佳!
//优点:通杀100%系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用IE远程创建Mysql数据库的简易程序
Oct 09 PHP
可定制的PHP缩略图生成程式(需要GD库支持)
Mar 06 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
Mar 24 PHP
PHP操作xml代码
Jun 17 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
Nov 22 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
php删除数组指定元素实现代码
May 03 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP设计模式之注册树模式分析
Jan 26 PHP
php微信开发之图片回复功能
Jun 14 PHP
Thinkphp极验滑动验证码实现步骤解析
Nov 24 #PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 #PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
Nov 22 #PHP
php操作redis命令及代码实例大全
Nov 19 #PHP
PHP实现倒计时功能
Nov 16 #PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 #PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 #PHP
You might like
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
php购物网站支付paypal使用方法
2010/11/28 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
JavaScript 全角转半角部分
2009/10/28 Javascript
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
jQuery.each()用法分享
2012/07/31 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
Three.js基础部分学习
2017/01/08 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
python中self原理实例分析
2015/04/30 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
django中ImageField的使用详解
2020/12/21 Python
玩转CSS3色彩
2010/01/16 HTML / CSS
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
高中自我鉴定范文
2013/11/03 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
员工入职担保书范文
2014/04/01 职场文书
大学生求职信范文
2014/05/24 职场文书
经营场所使用证明
2015/06/19 职场文书