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 相关文章推荐
实用函数4
Nov 08 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
php 正则表达式小结
Aug 31 PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
PHP定时更新程序设计思路分享
Jun 10 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
wampserver改变默认网站目录的办法
Aug 05 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
js tab 选项卡
2009/04/26 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
Python中endswith()函数的基本使用
2015/04/07 Python
简单的python后台管理程序
2017/04/13 Python
python3大文件解压和基本操作
2017/12/15 Python
Python管理Windows服务小脚本
2018/03/12 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
大四学生找工作的自荐信
2014/03/27 职场文书
访谈节目策划方案
2014/05/15 职场文书
一般党员对照检查材料
2014/09/24 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
反腐倡廉影片观后感
2015/06/08 职场文书
导游词之襄阳古城
2019/09/27 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
深入理解pytorch库的dockerfile
2022/06/10 Python
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers