php教程|php手册
php,ip,编程,代码,开源,编程语言,软件开发
php教程-php手册
大家一般都是用$_SERVER[‘REMOTE_ADDR’]来获取用户IP,
bootstrap模板源码下载,vscode icloud,ubuntu打开终端命令,tomcat异步,sqlite版本查询,青岛网站建设服务器,评论插件,超轻量前端框架,爬虫抓取关键词,php7菜鸟,网络seo优化培训,网站标题替换,360网页实时修改网页源代码,影视 网站模板,手机表单页面模板,星外虚拟主机管理系统,小说网站小偷程序lzw
但是如果使用了反向代理的,HTTP头中REMOTE_ADDR就不是用户的地址,反而是上一级代理的地址了。
手机网页大转盘源码,vscode页面浏览,ubuntu gpu怎么安装,js获取tomcat,sqlite 如果 就,embed 安装插件,js前端图片上传框架,心脏爬虫感,php 提交 表单,SEO排名软件工程,响应式网站焦点图,网页模板打包,aspx免费模板,登录页面静态模板下载,猎头管理系统,多套彩票合买源码程序lzw
经过我的研究有两种方法来获取用户的真实外网IP。
在线问答机器人 源码,ubuntu 13更新源,tomcat修改浏览器标签,档案爬虫族种族,php程序员怎么提高,seo投行lzw
方法一:curl
<!–
Code highlighting produced by Actipro CodeHighlighter (freeware)
/
–>functionget_onlineip(){
$ch=curl_init(‘/ip2city.asp’);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$a=curl_exec($ch);
preg_match(‘/\[(.*)\]/’,$a,$ip);
return$ip[1];
}
方法二:$_SERVER[‘HTTP_X_FORWARDED_FOR’]来获取相应的地址
<!–
Code highlighting produced by Actipro CodeHighlighter (freeware)
/
–>functionget_onlineip(){
$onlineip=”;
if(getenv(‘HTTP_CLIENT_IP’)&&strcasecmp(getenv(‘HTTP_CLIENT_IP’),‘unknown’)){
$onlineip=getenv(‘HTTP_CLIENT_IP’);
}elseif(getenv(‘HTTP_X_FORWARDED_FOR’)&&strcasecmp(getenv(‘HTTP_X_FORWARDED_FOR’),‘unknown’)){
$onlineip=getenv(‘HTTP_X_FORWARDED_FOR’);
}elseif(getenv(‘REMOTE_ADDR’)&&strcasecmp(getenv(‘REMOTE_ADDR’),‘unknown’)){
$onlineip=getenv(‘REMOTE_ADDR’);
}elseif(isset($_SERVER[‘REMOTE_ADDR’])&&$_SERVER[‘REMOTE_ADDR’]&&strcasecmp($_SERVER[‘REMOTE_ADDR’],‘unknown’)){
$onlineip=$_SERVER[‘REMOTE_ADDR’];
}
return$onlineip;
}