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程序员工具
May 26 PHP
Fatal error: Call to undefined function curl_init()解决方法
Apr 09 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
使用cookie实现统计访问者登陆次数
Jun 08 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
Jun 19 PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
浅谈php中urlencode与rawurlencode的区别
Sep 05 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
请php正则走开
2008/03/15 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
vue实现购物车加减
2020/05/30 Javascript
Python 制作糗事百科爬虫实例
2016/09/22 Python
Python面向对象之类的内置attr属性示例
2018/12/14 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
C语言编程题
2015/03/09 面试题
linux系统都有哪些运行级别
2012/04/15 面试题
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
总经理岗位职责描述
2014/02/08 职场文书
超市重阳节活动方案
2014/02/10 职场文书
建筑安全标语
2014/06/07 职场文书