PHP将网站访问记录IP保存到文件,并生成图片显示

发布时间:2010年03月23日      浏览次数:1148 次
<?php
function getBrowse(){
      global $_SERVER;
      $Agent = $_SERVER['HTTP_USER_AGENT'];
      $browseinfo='';
      if(ereg('Mozilla', $Agent) && !ereg('MSIE', $Agent)){
            $browseinfo = 'Netscape Navigator';
      }
      if(ereg('Opera', $Agent)) {
            $browseinfo = 'Opera';
      }
      if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent)){      
            $browseinfo = 'Internet Explorer';
      }
      if(ereg('Chrome', $Agent)){
            $browseinfo="Chrome";
      }
      if(ereg('Firefox', $Agent)){
            $browseinfo="Firefox";
      }
      return $browseinfo;
}

function getIP (){
      global $_SERVER;
      if (getenv('HTTP_CLIENT_IP')) {
            $ip = getenv('HTTP_CLIENT_IP');
      } else if (getenv('HTTP_X_FORWARDED_FOR')) {
            $ip = getenv('HTTP_X_FORWARDED_FOR');
      } else if (getenv('REMOTE_ADDR')) {
            $ip = getenv('REMOTE_ADDR');
      } else {
            $ip = $_SERVER['REMOTE_ADDR'];
      }
      return $ip;
}

function getOS (){
      global $_SERVER;
      $agent = $_SERVER['HTTP_USER_AGENT'];
      $os = false;
      if (eregi('win', $agent) && strpos($agent, '95')){
            $os = 'Windows 95';
      } else if (eregi('win 9x', $agent) && strpos($agent, '4.90')){
            $os = 'Windows ME';
      } else if (eregi('win', $agent) && ereg('98', $agent)){
            $os = 'Windows 98';
      } else if (eregi('win', $agent) && eregi('nt 5.1', $agent)){
            $os = 'Windows XP';
      } else if (eregi('win', $agent) && eregi('nt 5.2', $agent)){
            $os = 'Windows 2003';
      } else if (eregi('win', $agent) && eregi('nt 5', $agent)){
            $os = 'Windows 2000';
      } else if (eregi('win', $agent) && eregi('nt', $agent)){
            $os = 'Windows NT';
      } else if (eregi('win', $agent) && ereg('32', $agent)){
            $os = 'Windows 32';
      } else if (eregi('linux', $agent)){
            $os = 'Linux';
      } else if (eregi('unix', $agent)){
            $os = 'Unix';
      } else if (eregi('sun', $agent) && eregi('os', $agent)){
            $os = 'SunOS';
      } else if (eregi('ibm', $agent) && eregi('os', $agent)){
            $os = 'IBM OS/2';
      } else if (eregi('Mac', $agent) && eregi('PC', $agent)){
            $os = 'Macintosh';
      } else if (eregi('PowerPC', $agent)){
            $os = 'PowerPC';
      } else if (eregi('AIX', $agent)){
            $os = 'AIX';
      } else if (eregi('HPUX', $agent)){
            $os = 'HPUX';
      } else if (eregi('NetBSD', $agent)){
            $os = 'NetBSD';
      } else if (eregi('BSD', $agent)){
            $os = 'BSD';
      } else if (ereg('OSF1', $agent)){
            $os = 'OSF1';
      } else if (ereg('IRIX', $agent)){
            $os = 'IRIX';
      } else if (eregi('FreeBSD', $agent)){
            $os = 'FreeBSD';
      } else if (eregi('teleport', $agent)){
            $os = 'teleport';
      } else if (eregi('flashget', $agent)){
            $os = 'flashget';
      } else if (eregi('webzip', $agent)){
            $os = 'webzip';
      } else if (eregi('offline', $agent)){
            $os = 'offline';
      }      else {
            $os = 'Unknown';
      }
      return $os;
}
$ob=getBrowse();
$os= getOS ();
$ip=getIP ();
$str="IP:".$ip;
$str2="OS:".$os;
$str3=$ob;
$width = 170; //验证码图片的宽度
$height = 80; //验证码图片的高度
@header("Content-Type:image/jpeg");
$im=imagecreate($width,$height);
//背景色
$back=imagecolorallocate($im,0xFF,0xFF,0xFF);
//模糊点颜色
$pix=imagecolorallocate($im,187,230,247);
//字体色
$font=imagecolorallocate($im,41,163,238);
//绘模糊作用的点
mt_srand();
for($i=0;$i<1000;$i++)
{
imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix);
}
imagestring($im,5,7,5,$str,$font);
imagestring($im,5,7,30,$str2,$font);
imagestring($im,5,7,55,$str3,$font);
imagerectangle($im,0,0,$width-1,$height-1,$font);
imagepng($im);
imagedestroy($im);
?>
<?php
$keydb = gmdate("Y",time() + 8 * 3600 ).".csv";
$title = "IP记录系统";
$time=date("Y-m-d H:i:s");
$s .= ''.$time.','.$str.','.$str2.','.$str3.'';
/*写入*/
if($time) {
$fp=fopen($keydb,"a");
fwrite($fp,$time.",".$str.",".$str2.",".$str3."\r\n"); //写入数据
fclose($fp);
}
?>
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!