php 获取本机外网/公网IP的代码
大家一般都是用$_SERVER['REMOTE_ADDR']来获取用户IP,
但是如果使用了反向代理的,HTTP头中REMOTE_ADDR就不是用户的地址,反而是上一级代理的地址了。
经过我的研究有两种方法来获取用户的真实外网IP。
function get_onlineip() {
$ch = curl_init('http://www.ip138.com/ip2city.asp');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$a = curl_exec($ch);
preg_match('/\[(.*)\]/', $a, $ip);
return $ip[1];
}
方法二:$_SERVER['HTTP_X_FORWARDED_FOR']来获取相应的地址
代码如下:
function get_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;
}
相关推荐
-
thinkphp如何获取客户端IP
thinkphp框架中系统内置了get_client_ip方法用于获取客户端的IP地址,使用示例: $ip = get_client_ip(); 除了thinkphp内置get_client_ip函数外,也可使用下面函数获取客户端IP地址. $type表示返回类型 0 返回IP地址, 1 返回IPV4地址数字 分享代码如下 function get_client_ip($type = 0) { $type = $type ? 1 : 0; static $ip = NULL; if ($ip !
-
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
本文所述php实例可以完成获取局域网所有用户的电脑IP和主机名.及mac地址的功能,对于php程序设计人员有一定的参考借鉴价值.完整代码如下: <?php $bIp = gethostbyname($_ENV['COMPUTERNAME']); //获取本机的局域网IP echo "本机IP:",$bIp,"\n"; echo "本机主机名:",gethostbyaddr($bIp),"\n\n\n"; //gethos
-
php REMOTE_ADDR之获取访客IP的代码
<?php $iipp=$_SERVER["REMOTE_ADDR"]; echo $iipp; ?>[/code][code]<?php $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $user_IP = ($user_IP) ? $user_IP : $_SER
-
php 获取本地IP代码
复制代码 代码如下: <?function get_client_ip(){if ($_SERVER['REMOTE_ADDR']) {$cip = $_SERVER['REMOTE_ADDR'];} elseif (getenv("REMOTE_ADDR")) {$cip = getenv("REMOTE_ADDR");} elseif (getenv("HTTP_CLIENT_IP")) {$cip = getenv("HTT
-
php获取用户IPv4或IPv6地址的代码
其实这个很简单,只不过我一直想用 ipv6-test 的API做一个获取用户IP地址的东西--无奈JSON获取到的只是本机服务器的IP.算了,不研究了,何况人家提供的widget也挺好用的.谷歌了一下,找到这段代码,可以根据用户环境获取IP地址. 例如IPv6访问 www.shiwo.de 则获取到的是用户的IPv6地址 p.s 前提是网站做了A和AAAA解析 复制代码 代码如下: <?php function getIP() /*获取客户端IP*/ { if (@$_SERVER["HT
-
PHP根据IP地址获取所在城市具体实现
文件目录: ipLocation-----qqwry----------QQWry.Dat-----ipCity.class.php ipCity.class.php文件代码: 复制代码 代码如下: <?php class ipCity { /** * 根据ip地址获取对应所在城市 * @param type $userip 用户IP地址 * @return string */ public function getCity( $userip, $dat_p
-
ThinkPHP使用UTFWry地址库进行IP定位实例
可以在官网的 http://www.thinkphp.cn/extend/223.html下载IP定位扩展类库,或者下载扩展包( http://www.thinkphp.cn/down/253.html)里面也已经包含该扩展类了.如果是单独下载的上传类库,把解压后的IpLocation.class.php 放入ThinkPHP/Extend/Library/ORG/Net/(如果没有请手动创建)目录下面. 一.获取IP地址 如果你仅仅需要获取用户访问的IP地址,那么直接使用系统内置的get_cl
-
PHP 获取客户端真实IP地址多种方法小结
经过复杂的判断与算是的获取IP地址函数 复制代码 代码如下: function getIP() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (getenv('HTTP_X_FORWARDED')) { $ip = getenv('
-
php 获取客户端的真实ip
复制代码 代码如下: function GetIP(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strc
-
php中获取远程客户端的真实ip地址的方法
(1).REMOTE_ADDR:浏览当前页面的用户计算机的ip地址 (2).HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关 (3).HTTP_CLIENT_IP:客户端的ip 在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址.要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["
-
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
一.没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示 二.使用透明代理服务器的情况:Transparent Proxies REMOTE_ADDR = 最后一个代理服务器 IP HTTP_VIA = 代理服务器 IP HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163,
-
php中获取主机名、协议及IP地址的方法
本文实例讲述了php中获取主机名.协议及IP地址的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: $hostname=gethostbyaddr($_SERVER['remote_addr']); //获取主机名 echo $hostname; //输出结果 // $hosts=gethostbynamel('localhost'); //获取ip地址列表 print_r($hosts); //输出数组 // $
-
php gethostbyname获取域名ip地址函数详解
返回 IP 网址. gethostbyname语法: string gethostbyname(string hostname); gethostbyname返回值: 字符串 函数种类: 网络系统 gethostbyname内容说明 本函数可返回某个机器名称 (Domain Name) 的 IP 网址 (IP Address).若执行失败,则返回原来的机器名称. 使用范例 下例的gethostbyname返回值为 61.129.70.67 <? echo gethostbyaddr("ww
-
php下获取客户端ip地址的函数
复制代码 代码如下: function getip() { $IP=getenv('REMOTE_ADDR'); $IP_ = getenv('HTTP_X_FORWARDED_FOR'); if (($IP_ != "") && ($IP_ != "unknown")) $IP=$IP_; return $IP; } 下面这个比较好的 复制代码 代码如下: function getIP() { if (isset($_SERVER)) { if (
随机推荐
- 用户权限管理设计[图文说明]
- SQL server 2008 更改登录验证方式的方法
- C#中的正则表达式双引号问题
- Java使用正则表达式提取XML节点内容的方法示例
- Asp.net中使用Sqlite数据库的方法
- Android从系统Gallery获取图片具体实现
- php 阴历-农历-转换类代码
- Tensorflow简单验证码识别应用
- mysql_connect localhost和127.0.0.1的区别(网络层阐述)
- Godaddy VDS Simple Control Panel出错的解决方法
- 用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
- jquery学习笔记二 实现可编辑的表格
- jQuery实现点击小图片淡入淡出显示大图片特效
- 我教你学之注册表备份与恢复
- Android中设置组件半透明和透明的效果示例
- C#中的IDisposable模式用法详解
- Android新布局方式ConstraintLayout快速入门教程
- PHP join()函数用法与实例讲解
- 利用python开发app实战的方法
- Android单选按钮RadioButton的使用详解