动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   PHP → 阅读文章

 取得客户端信息(浏览器/IP/操作系统)

作者来源: 
阅读 2394 人次 , 2006-2-16 14:35:00 

<?php class clientGetObj
{
  function getBrowse()
  {
    global $_SERVER;
    $Agent = $_SERVER['HTTP_USER_AGENT'];
    $browser = '';
    $browserver = '';
    $Browser = array('Lynx', 'MOSAIC', 'AOL', 'Opera', 'JAVA', 'MacWeb', 'WebExplorer', 'OmniWeb');
    for($i = 0; $i <= 7; $i ++){
      if(strpos($Agent, $Browsers[$i])){
        $browser = $Browsers[$i];
        $browserver = '';
      }
    }
    if(ereg('Mozilla', $Agent) && !ereg('MSIE', $Agent)){
      $temp = explode('(', $Agent);
      $Part = $temp[0];
      $temp = explode('/', $Part);
      $browserver = $temp[1];
      $temp = explode(' ', $browserver);
      $browserver = $temp[0];
      $browserver = preg_replace('/([d.]+)/', '1', $browserver);
      $browserver = $browserver;
      $browser = 'Netscape Navigator';
    }
    if(ereg('Mozilla', $Agent) && ereg('Opera', $Agent)) {
      $temp = explode('(', $Agent);
      $Part = $temp[1];
      $temp = explode(')', $Part);
      $browserver = $temp[1];
      $temp = explode(' ', $browserver);
      $browserver = $temp[2];
      $browserver = preg_replace('/([d.]+)/', '1', $browserver);
      $browserver = $browserver;
      $browser = 'Opera';
    }
    if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent)){
      $temp = explode('(', $Agent);
      $Part = $temp[1];
      $temp = explode(';', $Part);
      $Part = $temp[1];
      $temp = explode(' ', $Part);
      $browserver = $temp[2];
      $browserver = preg_replace('/([d.]+)/','1',$browserver);
      $browserver = $browserver;
      $browser = 'Internet Explorer';
    }
    if($browser != ''){
      $browseinfo = $browser.' '.$browserver;
    } else {
      $browseinfo = false;
    }
    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', $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;
  }

}?>

使用方法:

1.将以上框内代码另存为getinfo.php

2.在需要地页面引入getinfo.php
<?php incude('getinfo.php'); ?>

3. 使用之前定义的类
<?php
$code = new clientGetObj;
$str1 = $code->getBrowse();//浏览器:
$str2 = $code->getIP();//IP地址:
$str3 = $code->getOS();//操作系统:
echo "目标浏览器:".$str1." OS:".$str3." IP:".$str2;
?>

  
 本文Tags组网  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:取得随机数
· 下一篇:上一主题/下一主题的实现
· php通用检测函数集(3)
· PHP 编码规范(18)
· 利用static实现表格的颜色隔行显示
· PHP4与MySQL数据库操作函数详解(一)
· 正则表达式系统教程(四)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077