后端开发|php教程
php
后端开发-php教程
用户登录页面 数据库源码下载,ubuntu无法ssh访问,tomcat启动杀不掉线程,群晖小说爬虫,php学习路径与操作项目,seo文案经典lzw
PHP如何获得客户端ip地址?
免费asp企业网站源码,vscode直接运行js脚本,ubuntu uefi失败,tomcat网页进不去,超强爬虫,php学习经验,是否值得做百度seo,物业网站模板下载lzw
A、如果没有使用代理服务器,
mvc4 高级编程 源码,vscode保存代码运行快捷键,ubuntu cairo,tomcat 数据采集器,分表 sqlite,网页设计文字行距,云服务器与虚拟主机的区别,dz x3.3 破解插件,快速建前端框架,会爬虫啥意思,php 大师,seo有什么用,小米 网站 模板,c 网页素材源码,登陆界面模板,动态jsp页面模版,全国教师资源管理系统,购物分享程序lzw
REMOTE_ADDR = 客户端IP HTTP_X_FORWARDED_FOR = 没数值或不显示
$ip = $_SERVER[REMOTE_ADDR];
B、使用透明代理,
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 客户端真实 IP (经过多个代理服务器时,这个值类似:221.5.252.160, 203.98.182.163, 203.129.72.215)
这类代理还会将客户真实ip发送到请求对象,无法隐藏真实ip。
$ip = $_SERVER[HTTP_X_FORWARDED_FOR];
C、使用普通匿名代理服务器,
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP (经过多个代理服务器时,这个值类似:203.98.182.163, 203.98.182.163, 203.129.72.215)
这样就隐藏了客户端的真实ip,但服务器会知道客户端是通过代理服务器去访问的。
D、使用欺骗性代理服务器,
REMOTE_ADDR = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP(经过多个代理服务器时,这个值类似:220.4.251.159, 203.98.182.163, 203.129.72.215)
服务器可以识别到时通过代理服务器访问的,但发送给目标服务器的是虚假ip。
E、使用高匿名代理,
REMOTE_ADDR = 代理服务器 IP HTTP_X_FORWARDED_FOR = 没数值或不显示
使用这种代理时,不同浏览器不同设备会返回不同的ip头信息,因此PHP使用$_SERVER["REMOTE_ADDR"]
、$_SERVER["HTTP_X_FORWARDED_FOR"]
获取的值可能是空值也可能是“unknown”值。
PHP获取ip代码如下:
public function ip() { //strcasecmp 比较两个字符,不区分大小写。返回0,>0,<0。 if(getenv(HTTP_CLIENT_IP) && strcasecmp(getenv(HTTP_CLIENT_IP), unknown)) { $ip = getenv(HTTP_CLIENT_IP); } elseif(getenv(HTTP_X_FORWARDED_FOR) && strcasecmp(getenv(HTTP_X_FORWARDED_FOR), unknown)) { $ip = getenv(HTTP_X_FORWARDED_FOR); } elseif(getenv(REMOTE_ADDR) && strcasecmp(getenv(REMOTE_ADDR), unknown)) { $ip = getenv(REMOTE_ADDR); } elseif(isset($_SERVER[REMOTE_ADDR]) && $_SERVER[REMOTE_ADDR] && strcasecmp($_SERVER[REMOTE_ADDR], unknown)) { $ip = $_SERVER[REMOTE_ADDR]; } $res = preg_match ( /[\d\.]{7,15}/, $ip, $matches ) ? $matches [0] : \; echo $res; //dump(phpinfo());//所有PHP配置信息}
推荐教学:PHP视频教学