PHP获得用户使用的代理服务器ip即真实ip_php技巧

来自 http://www.phpchina.com/bbs/thread-12239-1-1.html
在PHP 中用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址

但如果客户端是使用代理服务器来访问

那取到的就是代理服务器的 IP 地址

要想透过代理服务器取得客户端的真实 IP 地址

就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取

但并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实 IP

有些用此方法读取到的仍然是代理服务器的 IP 

时间: 2024-09-01 22:35:25

PHP获得用户使用的代理服务器ip即真实ip_php技巧的相关文章

IP地址冲突防止技巧

  网络中,局域网中,在管理.维护局域网的过程中,网络管理员往往都会担负起普通工作站IP地址的分配任务,普通工作站只有通过正确地注册后才能被局域网认为是合法工作站.在局域网工作环境中,任何一台普通工作站使用没有经过特别授权的IP地址时,都会被局域网网络当作是非法IP地址在使用. 不过在Windows操作系统环境下,普通工作站用户常常可以根据自己的意愿随意修改本地工作站的IP地址参数,那样一来局域网网络就容易频繁发生IP地址冲突的故障现象,这种现象会"干扰" 局域网的稳定运行,甚至会给日

PHP获取客户端及服务器端IP的封装类_php技巧

本文实例讲述了PHP获取客户端及服务器端IP的封装类.分享给大家供大家参考,具体如下: 客户端IP相关的变量: 1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP. 2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可伪造. 3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用户是在哪个IP使用的代理,可能存在,可以伪造. 服务器端IP相关的变量: 1. $_SERVER["SE

PHP实现检测客户端是否使用代理服务器及其匿名级别_php技巧

要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断. 具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器. 匿名级别可以参考下表来判断. 给出一个应用例子,可以挂上代理试试效果: http://ip.mixsec.org/ 一.没有使用代理服务器的情况:      REMOTE_ADDR = 您的 IP      HTTP_VIA = 没数值或不显示      HTTP_X_FORWARDED_FOR = 没数值或不显示 二.使用透明代理服务

一些提供代理服务器IP列表的链接

服务器|链接 代理IP列表链接如下  http://info.hustonline.net/info/index/proxyshow.aspxhttp://proxy.ipcn.org/proxylisthttp://www.xjtushare.com/ (教育网) http://www.fhost.info/proxy/http://www.publicproxyservers.com/page1.html (国外)http://enet.fwhost.net/proxy (国外)http:/

做了CDN加速的ASP网站获取用户真实IP程序_应用技巧

复制代码 代码如下: function checkip(checkstring)'用正则判断IP是否合法 dim re1 set re1=new RegExp re1.pattern="^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$" re1.global=false re1.Ignorecase=false checkip=re1.test(checkstring) set re1=nothing end function 复制代码 代码如

php 获取本机外网/公网IP的代码_php技巧

大家一般都是用$_SERVER['REMOTE_ADDR']来获取用户IP, 但是如果使用了反向代理的,HTTP头中REMOTE_ADDR就不是用户的地址,反而是上一级代理的地址了. 经过我的研究有两种方法来获取用户的真实外网IP. 方法一:curl 复制代码 代码如下: function get_onlineip() { $ch = curl_init('http://www.ip138.com/ip2city.asp'); curl_setopt($ch, CURLOPT_RETURNTRA

简单实现限定phpmyadmin访问ip的方法_php技巧

修改:config.inc.php 在第一行加入 $ip_prefix = '192.168.121.'; if (substr($_SERVER['REMOTE_ADDR'], 0, strlen($ip_prefix)) != $ip_prefix ) die('illegal access error'); ip可以设置成你自己电脑的ip.如果是内网建议直接设置成自己的ip地址取代ip地址段.这样的话可以防止其它用户在内网中访问.如果是公网ip限制,直接使用即可. 只是简单的限定,没有太大

PHP实现的限制IP投票程序IP来源分析_php技巧

本文实例分析了PHP实现的限制IP投票程序.分享给大家供大家参考,具体如下: 接到一个投票活动的需求,需要做IP限制,每个IP限制一定的投票机会.我在搜索引擎上搜索了关键词:PHP客户端IP ,结果基本上都是以下内容: if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('

php获取用户IPv4或IPv6地址的代码_php技巧

其实这个很简单,只不过我一直想用 ipv6-test 的API做一个获取用户IP地址的东西--无奈JSON获取到的只是本机服务器的IP.算了,不研究了,何况人家提供的widget也挺好用的.谷歌了一下,找到这段代码,可以根据用户环境获取IP地址. 例如IPv6访问 www.shiwo.de 则获取到的是用户的IPv6地址 p.s 前提是网站做了A和AAAA解析 复制代码 代码如下: <?php function getIP() /*获取客户端IP*/ { if (@$_SERVER["HT