如何获取伪装ip下的真实ip地址
取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确.但是我们还是尽量找一个比较完善的获取客户端真正ip方法.使用php获取IP的方法能找到很多.
php获取用户(客户端)真实IP地址的三种方法
01
|
function get_real_ip(){
|
02
|
$ip =false;
|
03
|
if (! empty ( $_SERVER [ 'HTTP_CLIENT_IP' ])){
|
04
|
$ip = $_SERVER [ 'HTTP_CLIENT_IP' ];
|
05
|
}
|
06
|
if (! empty ( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ])){
|
07
|
$ips = explode ( ', ' , $_SERVER [ 'HTTP_X_FORWARDED_FOR' ]);
|
08
|
if ( $ip ){ array_unshift ( $ips , $ip ); $ip =FALSE; }
|
09
|
for ( $i =0; $i < count ( $ips ); $i ++){
|
10
|
if (! eregi ( '^(10│172.16│192.168).' , $ips [ $i ])){
|
11
|
$ip = $ips [ $i ];
|
12
|
break ;
|
13
|
}
|
14
|
}
|
15
|
}
|
16
|
return ( $ip ? $ip : $_SERVER [ 'REMOTE_ADDR' ]);
|
17
|
}
|
第二种方法:
01
|
function get_real_ip(){
|
02
|
static $realip ;
|
03
|
if (isset( $_SERVER )){
|
04
|
if (isset( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ])){
|
05
|
$realip = $_SERVER [ 'HTTP_X_FORWARDED_FOR' ];
|
06
|
} else if (isset( $_SERVER [ 'HTTP_CLIENT_IP' ])){
|
07
|
$realip = $_SERVER [ 'HTTP_CLIENT_IP' ];
|
08
|
} else {
|
09
|
$realip = $_SERVER [ 'REMOTE_ADDR' ];
|
10
|
}
|
11
|
} else {
|
12
|
if ( getenv ( 'HTTP_X_FORWARDED_FOR' )){
|
13
|
$realip = getenv ( 'HTTP_X_FORWARDED_FOR' );
|
14
|
} else if ( getenv ( 'HTTP_CLIENT_IP' )){
|
15
|
$realip = getenv ( 'HTTP_CLIENT_IP' );
|
16
|
} else {
|
17
|
$realip = getenv ( 'REMOTE_ADDR' );
|
18
|
}
|
19
|
}
|
20
|
return $realip ;
|
21
|
}
|
第三种方法,摘自DISCUZ,应该还不错吧!
01
|
// 获取IP地址(摘自discuz)
|
02
|
function getIp(){
|
03
|
$ip = '未知IP' ;
|
04
|
if (! empty ( $_SERVER [ 'HTTP_CLIENT_IP' ])){
|
05
|
return is_ip( $_SERVER [ 'HTTP_CLIENT_IP' ])? $_SERVER [ 'HTTP_CLIENT_IP' ]: $ip ;
|
06
|
} elseif (! empty ( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ])){
|
07
|
return is_ip( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ])? $_SERVER [ 'HTTP_X_FORWARDED_FOR' ]: $ip ;
|
08
|
} else {
|
09
|
return is_ip( $_SERVER [ 'REMOTE_ADDR' ])? $_SERVER [ 'REMOTE_ADDR' ]: $ip ;
|
10
|
}
|
11
|
}
|
12
|
function is_ip( $str ){
|
13
|
$ip = explode ( '.' , $str );
|
14
|
for ( $i =0; $i < count ( $ip ); $i ++){
|
15
|
if ( $ip [ $i ]>255){
|
16
|
return false;
|
17
|
}
|
18
|
}
|
19
|
return preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/' , $str );
|
20
|
}
|
如何获取伪装ip下的真实ip地址相关推荐
- java后端获取客户端(用户)真实ip,原理
java后端获取客户端真实ip,原理: 一般都是下面代码中的做法:但很多人只知道这样能拿到,稍微有改动就不知道怎么办了 看看网上的各种说法,接下来容我一一讲解,如有纰漏,敬请指正. public st ...
- python获取当前服务器ip_Python实现获取域名所用服务器的真实IP
本来是要写个程序用的,没写完不写了,这一部分就贴出来吧 验证域名和IP class JianKong(): '''查询IDC信息,封ip和过白名单''' def __init__(self): pas ...
- 关于同一局域网中,获取的IP非本地真实IP的问题。
关于同一局域网中,获取的IP非本地真实IP的问题. 目录结构 查看是否开启了电脑上的 "投屏" 功能 禁用除 "WLAN" 外的其他 "本地连接&qu ...
- CDN服务及如何获取CDN服务背后的真实IP
#CDN原理 首先,为了对CDN进行获取真实IP,我们必须清楚CDN的工作原理,这里我们再来简单介绍一下CDN的工作模型. CDN的全称是Content Delivery Network(内容分发网络 ...
- 如何隐藏地址栏中的真实地址_代理IP如何隐藏真实IP
现在发展越来越快,互联网的发展也是很多样化,这就导致了在上网过程中容易泄露个人信息.这时,只要用代理IP就可以解决这个问题. 多人会问:如果我使用代理,是否有可能将我的真实IP完全隐藏?我不太确定它的 ...
- tomcat修改配置文件ip为服务器真实ip
因为漏洞扫描要求,tomcat中配置localhost可能会有跨站攻击风险,所有需要把server.xml中的localhost改为服务器的真是ip地址. 1.Host节点修改 将Host节点中的na ...
- linux怎么静态改为自动获取,Linux系统下设置静态IP或自动获取动态IP的简单方法...
linux下为机器设置静态ip地址: 复制代码代码如下: vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改这个文件内容如下形式: 复制代码代码如下: # ...
- html5调用腾讯视频,小程序h5获取腾讯视频的真实mp4地址video!【前端+后端方法】...
1.前端方法! 首先复制一个连接!就你上传腾讯视频的url,注意不要拿那种电影啊之类的试! 那种获取不到的! 要拿别人上传的!或者自己上传的试! 取,最后一个/和.html中间内容!后面我又直接写好 ...
- 论X-Forwarded-For伪装代理请求与获取真实ip(springboot项目)
以下项目均是基于springboot2.x构建 1.使用X-Forwarded-For 伪装代理 之前做了一个项目,关于xxx抢购,当时是用spring boot做的,主要功能就是实现模拟真实用户登录 ...
- CDN下nginx获取用户真实IP地址
为什么80%的码农都做不了架构师?>>> 随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能 ...
最新文章
- Java 判断字符串是否为空的四种方法、优缺点与注意事项
- 如何进入zabbix的wab界面_如何不用光盘重装系统呢?
- 随机森林特征重要性计算_R语言随机森林模型中具有相关特征的变量重要性
- 章泽天卸任刘强东旗下一公司董事
- 如何使用自动化与分析工具库创建 Excel 直方图
- 离线环境安装dotnet framework nuget包
- 【CIKM2020】如何更为合适地评测推荐算法? Top-N物品推荐算法评测设置回顾
- jquery跨域访问解决方案
- JavaScript基础专题之执行上下文和执行栈(二)
- java mapxtreme_MapXtreme Java Edition 4.8使用心得(一)
- 增值税电子发票的对接系统的设计
- HTML调用QQ临时会话
- 利用PS制作GIF动图
- lch 儿童围棋课堂 初级篇1 ( (李昌镐 著))
- 幼儿园观察记录的目的和目标_幼儿园一日观察报告
- 附加类型”XXXX“的实体失败,因为相同类型的其他实体已具有相同的主键值。在使用 “Attach“ 方法或者将实体的状态设置为 “Unchanged“ 或 “Modified“
- 股票指数的四种加权方式
- ZooZ推出应用内移动支付SDK
- 网络攻防技术——XSS实验
- Word如何取消打印前自动更新域