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 编程安全性小结
Jan 08 PHP
PHP 飞信好友免费短信API接口开源版
Jul 22 PHP
深入php socket的讲解与实例分析
Jun 13 PHP
php模板原理讲解
Nov 13 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
php生成gif动画的方法
Nov 05 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
Laravel Eloquent ORM 多条件查询的例子
Oct 10 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
PHP的开发框架的现状和展望
2007/03/16 PHP
Laravel框架表单验证详解
2014/09/04 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
php给图片加文字水印
2015/07/31 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
学习并汇集javascript匿名函数
2010/11/25 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
python的id()函数介绍
2013/02/10 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
浅析python连接数据库的重要事项
2021/02/22 Python
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
经典C++面试题一
2016/11/06 面试题
高中生自我评语大全
2014/01/19 职场文书
商场父亲节活动方案
2014/08/27 职场文书
信用卡工资证明范本
2014/10/17 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
高考1977观后感
2015/06/04 职场文书
认识实习感想
2015/08/10 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
一级电子管军用接收机测评
2022/04/05 无线电
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技