我们在做系统的时候,一般都需要记录一些网站的日志信息,当然Apache服务器本身是有日志记录的,不过有时候我们也可以利用数据库来记录网站的访问日志,用数据库的目的就是方便系统管理员查询,而Apache的服务日志,对于一个一般的操作人员来说,在其中查找信息还是非常不方便的。

记录客户端的IP信息,我们也经常的需要用到,如果你是建一个销售的站点,你应该需要考虑你的客户是从哪里来的,你的客户是哪个地区(或是哪个国家)的,而这些信息都可以帮助你日后分析你的网站,当然现在的一些站点记录器(如CNZZ,StatCounter等)都带有这些功能。

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'];
}

preg_match(“/[\d\.]{7,15}/”, $onlineip, $onlineipmatches);
$onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : ‘unknown’;
unset($onlineipmatches);

上面是从Discuz源码找到一段,用来获取客户端IP地址的源码。IP地址保存在变量$onlineip中。

Live Chat Software