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
discuz Passport 通行证 整合笔记
Jun 30 PHP
基于MySQL体系结构的分析
May 02 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
php提示Failed to write session data错误的解决方法
Dec 17 PHP
php rsa加密解密使用详解
Jan 14 PHP
项目中应用Redis+Php的场景
May 22 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
PHP多维数组指定多字段排序的示例代码
May 16 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 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
PHP实现的memcache环形队列类实例
2015/07/28 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
JavaScript 事件查询综合
2009/07/13 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
全面了解python中的类,对象,方法,属性
2016/09/11 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
python树莓派红外反射传感器
2019/01/21 Python
Python中Numpy mat的使用详解
2019/05/24 Python
python如何保证输入键入数字的方法
2019/08/23 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
QML实现钟表效果
2020/06/02 Python
Python urllib2运行过程原理解析
2020/06/04 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
健康状况证明书
2014/11/26 职场文书
初中作文评语
2014/12/25 职场文书
爱心捐助活动总结
2015/05/09 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书