PageRenderTime 52ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/libs/system/Swoole_client.php

https://github.com/monkeycraps/swoole_framework
PHP | 118 lines | 90 code | 0 blank | 28 comment | 50 complexity | ecc8b04659ba5e86cc362bd1eb7b5f5e MD5 | raw file
  1. <?php
  2. /**
  3. * 客户端工具
  4. * 获取客户端IP、操作系统、浏览器,以及HTTP操作等功能
  5. * @author Administrator
  6. * @package SwooleSystem
  7. * @subpackage tools
  8. */
  9. class Swoole_client
  10. {
  11. /**
  12. * 跳转网址
  13. * @param $url
  14. * @return unknown_type
  15. */
  16. static function redirect($url,$mode=302)
  17. {
  18. header("Location: ".$url,$mode);
  19. header("Connection: close");
  20. exit;
  21. }
  22. /**
  23. * 发送下载声明
  24. * @return unknown_type
  25. */
  26. static function download($mime,$filename)
  27. {
  28. header("Content-type: $mime");
  29. header("Content-Disposition: attachment; filename=$filename");
  30. }
  31. /**
  32. * 获取客户端IP
  33. * @return unknown_type
  34. */
  35. public static function getIP()
  36. {
  37. if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
  38. $ip = getenv("HTTP_CLIENT_IP");
  39. else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
  40. $ip = getenv("HTTP_X_FORWARDED_FOR");
  41. else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
  42. $ip = getenv("REMOTE_ADDR");
  43. else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
  44. $ip = $_SERVER['REMOTE_ADDR'];
  45. else
  46. $ip = "unknown";
  47. return($ip);
  48. }
  49. /**
  50. * 获取客户端浏览器信息
  51. * @return unknown_type
  52. */
  53. public static function getBrowser()
  54. {
  55. if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(myie[^;^)^(]*)|i" ) );
  56. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(Netscape[^;^)^(]*)|i" ) );
  57. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(Opera[^;^)^(]*)|i" ) );
  58. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(NetCaptor[^;^^()]*)|i" ) );
  59. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(TencentTraveler)|i" ) );
  60. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(Firefox[0-9/\.^)^(]*)|i" ) );
  61. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(MSN[^;^)^(]*)|i" ) );
  62. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(Lynx[^;^)^(]*)|i" ) );
  63. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(Konqueror[^;^)^(]*)|i" ) );
  64. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(WebTV[^;^)^(]*)|i" ) );
  65. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(msie[^;^)^(]*)|i" ) );
  66. else if( $Browser = self::matchbrowser( $_SERVER["HTTP_USER_AGENT"], "|(Maxthon[^;^)^(]*)|i" ) );
  67. else $Browser = '其它';
  68. return $Browser;
  69. }
  70. /**
  71. * 获取客户端操作系统信息
  72. * @return unknown_type
  73. */
  74. public static function getOS()
  75. {
  76. $os="";
  77. $Agent = $_SERVER["HTTP_USER_AGENT"];
  78. if (eregi('win',$Agent) && strpos($Agent, '95')) $os="Windows 95";
  79. elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) $os="Windows ME";
  80. elseif (eregi('win',$Agent) && ereg('98',$Agent)) $os="Windows 98";
  81. elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) $os="Windows 2000";
  82. elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) $os="Windows XP";
  83. elseif (eregi('win',$Agent) && eregi('nt 5.2',$Agent)) $os="Windows 2003";
  84. elseif (eregi('win',$Agent) && eregi('nt',$Agent)) $os="Windows NT";
  85. elseif (eregi('win',$Agent) && ereg('32',$Agent)) $os="Windows 32";
  86. elseif (eregi('linux',$Agent)) $os="Linux";
  87. elseif (eregi('unix',$Agent)) $os="Unix";
  88. elseif (eregi('sun',$Agent) && eregi('os',$Agent)) $os="SunOS";
  89. elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) $os="IBM OS/2";
  90. elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) $os="Macintosh";
  91. elseif (eregi('PowerPC',$Agent)) $os="PowerPC";
  92. elseif (eregi('AIX',$Agent)) $os="AIX";
  93. elseif (eregi('HPUX',$Agent)) $os="HPUX";
  94. elseif(eregi('NetBSD',$Agent)) $os="NetBSD";
  95. elseif (eregi('BSD',$Agent)) $os="BSD";
  96. elseif (ereg('OSF1',$Agent)) $os="OSF1";
  97. elseif (ereg('IRIX',$Agent)) $os="IRIX";
  98. elseif (eregi('FreeBSD',$Agent)) $os="FreeBSD";
  99. if ($os=='') $os = "Unknown";
  100. return $os;
  101. }
  102. private static function matchbrowser( $Agent, $Patten )
  103. {
  104. if( preg_match( $Patten, $Agent, $Tmp ) )
  105. {
  106. return $Tmp[1];
  107. }
  108. else
  109. {
  110. return false;
  111. }
  112. }
  113. static function request_method()
  114. {
  115. return $_SERVER['REQUEST_METHOD'];
  116. }
  117. }
  118. ?>