PHP获取IP的问题 我本机的IP是192.168.1.11 但是用PHP获取后的IP怎么是127.0.0.1,有没有办法得到真实的IP地址? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你是不是以 http://127.0.0.1/wwww/ 访问的?换成是不是以 http://192.168.1.11/wwww/ 试试 你是不是以 http://127.0.0.1/wwww/ 访问的?换成 http://192.168.1.11/wwww/ 试试 $_SERVER['REMOTE_ADDR']就是客户端的真实ip(代理除外) 你的站点在本机,访问的时候用了http://127.0.0.1或localhost或机器名,获取的IP当然就是127.0.0.1如果用http://192.168.1.11或hosts文件中配个域名指向192.168.1.11后用域名访问,$_SERVER['REMOTE_ADDR']得到的就是网卡上的IP了。 .... 这是小问题,给我一个我写的获取真实ip的类吧<?php /** * ip 类 */ class Ip { /** * 构造方法 * * @return void */ public function __construct() { } /** * 获取 IP 地址 * * @return string */ public function getIP() { if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'),'unknow')) $ip = getenv('HTTP_CLIENT_IP'); /* $ip IP 地址 */ else if (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknow')) $ip = getenv('HTTP_X_FORWARDED_FOR'); else if (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'),'unknow')) $ip = getenv('REMOTE_ADDR'); else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'],'unknow')) $ip = $_SERVER['REMOTE_ADDR']; /* * 验证 IP 合法性 */ $validator = new Ip_Validtor(); /* $validator = 验证是否是合法IP */ if ($validator->isValid($ip)) return $ip; else return '未知'; } }?> 如果server在集群环境下的话也得不到 请大家帮忙看这个个php程序,有没有什么问题 短时间按内连续两次登陆,session cookie不纪录信息 麻烦各位能帮我看下这个执行的流程吗?我不是很清楚,谢谢 冒着被拍的炮火,发帖!发帖! (源码共享)F2blog 1.0 一款基于PHP的、以MySQL为数据库支持的单用户blog(网络日志)程序 请问这个SQL语句怎么写? 为什么mysql_select_db总是失败? 请问下在框架中的一个header(location)问题 ie7ie8和360下怎么去掉input的默认x 在创建成功的数据库中创建不了表??? PHP的聊天功能。什么原理(不是聊天室) 定时信息发布求教!!
换成是不是以 http://192.168.1.11/wwww/ 试试
换成 http://192.168.1.11/wwww/ 试试
如果用http://192.168.1.11或hosts文件中配个域名指向192.168.1.11后用域名访问,$_SERVER['REMOTE_ADDR']得到的就是网卡上的IP了。
/**
* ip 类
*/
class Ip {
/**
* 构造方法
*
* @return void
*/
public function __construct() {
}
/**
* 获取 IP 地址
*
* @return string
*/
public function getIP() {
if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'),'unknow'))
$ip = getenv('HTTP_CLIENT_IP'); /* $ip IP 地址 */
else if (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknow'))
$ip = getenv('HTTP_X_FORWARDED_FOR');
else if (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'),'unknow'))
$ip = getenv('REMOTE_ADDR');
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'],'unknow'))
$ip = $_SERVER['REMOTE_ADDR']; /*
* 验证 IP 合法性
*/
$validator = new Ip_Validtor();
/* $validator = 验证是否是合法IP */
if ($validator->isValid($ip))
return $ip;
else
return '未知';
}
}
?>