PHP获取真实IP及IP模拟方法解析
发布:smiling 来源: PHP粉丝网 添加日期:2022-04-01 09:19:35 浏览: 评论:0
这篇文章主要介绍了PHP获取真实IP及IP模拟方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。
PHP获取用户真实IP方法1:
- <?php
- function GetIP(){
- if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])){
- $cip = $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif(!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"])){
- $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif(!emptyempty($_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(!emptyempty($_SERVER["HTTP_CLIENT_IP"])){
- $ip = $_SERVER["HTTP_CLIENT_IP"];
- }
- if (!emptyempty($_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%系统
Tags: PHP获取真实IP
- 上一篇:PHP实现倒计时功能
- 下一篇:最后一页
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)