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 相关文章推荐
PHP自动生成月历代码
Oct 09 PHP
利用PHP动态生成VRML网页
Oct 09 PHP
PHP配置心得包含MYSQL5乱码解决
Nov 20 PHP
PHP伪静态写法附代码
Jun 20 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
php 中的closure用法详解
Jun 12 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 09 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
phpMyadmin 用户权限中英对照
2010/04/02 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
python list语法学习(带例子)
2013/11/01 Python
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
Python lxml模块安装教程
2015/06/02 Python
python批量制作雷达图的实现方法
2016/07/26 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
关于Python数据结构中字典的心得
2017/12/04 Python
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
门诊挂号室室长岗位职责
2013/11/27 职场文书
校园报刊亭的创业计划书
2014/01/02 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
转让协议书
2015/01/27 职场文书
质量承诺书格式范文
2015/04/28 职场文书
青年志愿者活动感想
2015/08/07 职场文书
小学生运动会广播
2015/08/19 职场文书
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python