1. 程式人生 > >用php獲取裝置資訊

用php獲取裝置資訊

<?php
header("Content:Content-type:text/html;charset=utf-8");
//      // 作用取得客戶端的ip、地理位置、瀏覽器、以及訪問裝置
     class get_equipment_info{ 
      ////獲得訪客瀏覽器型別
      function GetBrowser(){
       if(!empty($_SERVER['HTTP_USER_AGENT']))
       {
         $br = $_SERVER['HTTP_USER_AGENT'];
          if (preg_match('/MSIE/i',$br)){    
             $br = 'MSIE';
          }
          elseif (preg_match('/Firefox/i',$br)){
             $br = 'Firefox';
          }elseif (preg_match('/Chrome/i',$br)){
             $br = 'Chrome';
          }elseif (preg_match('/Safari/i',$br)){
             $br = 'Safari';
          }elseif (preg_match('/Opera/i',$br)){
             $br = 'Opera';
          }else {
             $br = 'Other';
          }
             return json_encode("瀏覽器為".$br);
          }else{
             return "獲取瀏覽器資訊失敗!";} 
      }
      ////獲得訪客瀏覽器語言
      function GetLang()
      {
           if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
               $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
               $lang = substr($lang,0,5);
                if(preg_match("/zh-cn/i",$lang)){
                   $lang = "簡體中文";
                }elseif(preg_match("/zh/i",$lang)){
                   $lang = "繁體中文";
                }else{
                   $lang = "English";
                }
                return json_encode("瀏覽器語言為".$lang); 
           }else{
            return "獲取瀏覽器語言失敗!";
            }
      }
       
     //獲取客戶端作業系統資訊包括win10
    function GetOs(){
        $agent = $_SERVER['HTTP_USER_AGENT'];
        $os = false;
    
        if (preg_match('/win/i', $agent) && strpos($agent, '95'))
        {
            $os = 'Windows 95';
        }
        else if (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90'))
        {
            $os = 'Windows ME';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/98/i', $agent))
        {
            $os = 'Windows 98';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent))
        {
            $os = 'Windows Vista';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent))
        {
            $os = 'Windows 7';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent))
        {
            $os = 'Windows 8';
        }else if(preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent))
        {
            $os = 'Windows 10';#新增win10判斷
        }else if (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent))
        {
            $os = 'Windows XP';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent))
        {
            $os = 'Windows 2000';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent))
        {
            $os = 'Windows NT';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/32/i', $agent))
        {
            $os = 'Windows 32';
        }
        else if (preg_match('/linux/i', $agent))
        {
            $os = 'Linux';
        }
        else if (preg_match('/unix/i', $agent))
        {
            $os = 'Unix';
        }
        else if (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent))
        {
            $os = 'SunOS';
        }
        else if (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent))
        {
            $os = 'IBM OS/2';
        }
        else if (preg_match('/Mac/i', $agent) && preg_match('/PC/i', $agent))
        {
            $os = 'Macintosh';
        }
        else if (preg_match('/PowerPC/i', $agent))
        {
            $os = 'PowerPC';
        }
        else if (preg_match('/AIX/i', $agent))
        {
            $os = 'AIX';
        }
        else if (preg_match('/HPUX/i', $agent))
        {
            $os = 'HPUX';
        }
        else if (preg_match('/NetBSD/i', $agent))
        {
            $os = 'NetBSD';
        }
        else if (preg_match('/BSD/i', $agent))
        {
            $os = 'BSD';
        }
        else if (preg_match('/OSF1/i', $agent))
        {
            $os = 'OSF1';
        }
        else if (preg_match('/IRIX/i', $agent))
        {
            $os = 'IRIX';
        }
        else if (preg_match('/FreeBSD/i', $agent))
        {
            $os = 'FreeBSD';
        }
        else if (preg_match('/teleport/i', $agent))
        {
            $os = 'teleport';
        }
        else if (preg_match('/flashget/i', $agent))
        {
            $os = 'flashget';
        }
        else if (preg_match('/webzip/i', $agent))
        {
            $os = 'webzip';
        }
        else if (preg_match('/offline/i', $agent))
        {
            $os = 'offline';
        }
        else
        {
            $os = '未知作業系統';
        }
        return json_encode("系統為".$os); 
    }
    //獲得訪客真實ip
      function Getip()
    {
        if (! empty($_SERVER["HTTP_CLIENT_IP"])) {
            $ip = $_SERVER["HTTP_CLIENT_IP"];
        }
        if (! empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { // 獲取代理ip
            $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        }
        if ($ip) {
            $ips = array_unshift($ips, $ip);
        }
        
        $count = count($ips);
        for ($i = 0; $i < $count; $i ++) {
            if (! preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i])) { // 排除區域網ip
                $ip = $ips[$i];
                break;
            }
        }
        $tip = empty($_SERVER['REMOTE_ADDR']) ? $ip : $_SERVER['REMOTE_ADDR'];
        if ($tip == "127.0.0.1") { // 獲得本地真實IP
            return $this->get_onlineip();
        } else {
            return $tip;
        }
    }
     // //根據ip獲得訪客所在地地名
    function Getaddress($ip = '')
    {
        if (empty($ip)) {
            $ip = $this->Getip();
        }
        $ipadd = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=" . $ip); // 根據新浪api介面獲取
        if ($ipadd) {
            $charset = iconv("gbk", "utf-8", $ipadd);
            preg_match_all("/[\x{4e00}-\x{9fa5}]+/u", $charset, $ipadds);
            
            return $ipadds; // 返回一個二維陣列
        } else {
            return "addree is none";
        }
    }
    //獲得本地真實IP
    // function get_onlineip()
    // {
    //     $mip = file_get_contents("http://city.ip138.com/city0.asp");
    //     if ($mip) {
    //         preg_match("/\[.*\]/", $mip, $sip);
    //         $p = array(
    //             "/\[/",
    //             "/\]/"
    //         );
    //         return preg_replace($p, "", $sip[0]);
    //     } else {
    //         return "獲取本地IP失敗!";
    //     }
    // }
}

 // $info = new get_equipment_info();
 //     echo json_decode($info -> GetLang());
 //     echo json_decode($info -> GetOs());
 //     echo json_decode($info -> GetBrowser());
 //     print_r($info -> Getaddress());
 //     echo $info -> Getip();
 //     echo $info -> get_onlineip();
 //     die;
?>

相關推薦

php獲取裝置資訊

<?php header("Content:Content-type:text/html;charset=utf-8"); // // 作用取得客戶端的ip、地理位置、瀏覽器、以及訪問裝置 class get_equipment_info{

php獲取裝置資訊

php 獲取伺服器詳細資訊的方法 獲取系統型別及版本號: php_uname() (例:Windows NT COMPUTER 5.1 build 2600) 只獲取系統型別: php_uname('s') (或:PHP_OS,例:Windows NT) 只獲取系統版本號:

php獲取header頭資訊

      研究一晚上php關於自定義header頭資訊的問題。看了很多程式碼,但是由於本人才疏學淺。連測試demo都沒跑通。實在是慚愧。這裡看到個獲取header資訊的方法,挺不錯的,記錄一下。       我們可以在$_SERVER中獲取header資料,

PHP獲取網頁上的信息相對於xpath效率低點

所有 pat ini 自己 str rpo fwrite echo bst 用php實現對網頁的抓取,及信息的收集,其實就是爬數據,具體實現步驟如下,首先應引入兩個文件curl_html_get.php和save_file.php文件,兩個文件具體代碼是這樣

php獲取本周,上周,本月,上月,本季度日期的代碼

post class str pre clas date mon mktime rto echo date("Ymd",strtotime("now")), "\n"; echo date("Ymd",strtotime("-1 week Monday")), "\n";

React Native獲取裝置資訊元件

轉載 https://www.jianshu.com/p/907b003835dc 本文原創首發於公眾號:ReactNative開發圈,轉載需註明出處。 這次介紹的獲取移動裝置資訊的元件名叫:react-native-device-info,相容IOS和安

【迅為iTop4412學習筆記】7.以模組方式註冊裝置,以及驅動獲取裝置資訊

宣告 以下都是我剛開始看驅動視訊的個人強行解讀,如果有誤請指出,共同進步。 本節目標 以module的方式註冊裝置 正文 我們之前提到的流程:註冊裝置->註冊驅動,匹配成功則呼叫probe函式。 (至於probe函式是用來幹啥的

PHP獲取異常資訊

try { } catch (\Exception $e) { $extra = [ 'code' => $e->getCode(), 'msg' => $

React Native 獲取裝置資訊

一、獲取方案 使用開源的第三方元件react-native-device-info,該元件適用於iOS和Android雙平臺。 二、元件使用 在ReactNative專案中下載第三方元件依賴包, 我們一般都是使用命令列來執行下載:  進入專案執行:npm inst

iOS 獲取裝置資訊,mac地址,IP地址,裝置名稱

#import "DeviceInfoUtil.h" #import "GlobleData.h" #import "sys/utsname.h" #import <AdSupport/AdSupport.h> #import <ifaddrs.h>

NVAPI獲取GPU資訊

                通過nvapi可以獲得GPU的溫度和效能引數。主頁在這裡:https://developer.nvidia.com/nvapi我的程式碼基礎是來自網際網路,不過略加變化。首先是獲取物理GPU,然後是獲取溫度,最後是獲取GPU效能。另外,獲取GPU效能不需要自己通過offset從

移動端如何獲取裝置資訊

這次介紹的獲取移動裝置資訊的元件名叫:react-native-device-info,相容IOS和安卓雙平臺,可以獲取裝置ID、裝置品牌、裝置型號、IP以及APP版本號等資訊。是一個應用很廣泛的基礎元件。 親測可用,已在雙端真機上測試,均能獲取到裝置資訊! 安裝 npm install

HTML5+下js獲取裝置的唯一識別碼和本地資料庫的操作

首先獲取裝置的唯一標識,由於ios稽核的阻擋,我現在只是獲取它idfa來作為唯一識別碼(這個會被重置,如果idfa不重要的話是可以考慮此方法的),Android就不用多說了if(ua.match(/iphone\sOS/i) == "iphone os"){//識別裝置ios

android 獲取裝置資訊

android.os.Build裝置常量以及imsi號與ip地址的獲得 android.os.Build.MODEL :裝置名 android.os.Build.BRAND: 裝置廠商 android.os.Build.VERSION.SDK:sdk版本號 一般用於版本

php獲取本週,上週,本月,上月,本季度日期的程式碼

echo date("Ymd",strtotime("now")), "\n"; echo date("Ymd",strtotime("-1 week Monday")), "\n"; echo date("Ymd",strtotime("-1 week Sunday"

MIB Browser和Wireshark 的使用:通過oid獲取裝置資訊時的SNMP報文分析

MIB Browser&  Wireshark Table View 1.   Address  : 172.16.72.134 (將我所在主機的IP新增到172.16.72.134 的SNMP中) 2.   OID:  .1.3.6.1.2.2.1  (或點選i

微信小程式把玩(三十八)獲取裝置資訊 API

獲取裝置資訊這裡分為四種, 主要屬性: 網路資訊wx.getNetWorkType, 系統資訊wx.getSystemInfo, 重力感應資料wx.onAcceleromete

PHP獲取戶的真實IP地址

forward blog php tip class int rem for lang 本文出至:新太潮流網絡博客 PHP獲取用戶的真實IP地址,非代理IP function getClientIP(){ global $ip; if(geten

[iOS]獲取裝置具體型號資訊

本文地址; http://blog.csdn.net/zhaoyabei/article/details/46697859 應用統計中有時候需要上傳裝置型號,如果這樣寫: [[UIDevice currentDevice] model] 獲得的裝置型號不是具體型號,如在iPho

PHP獲取陰曆_節氣_天干地支紀年_陰曆節日_安徽省內天氣資訊

PHP獲取<陰曆><節氣><天干地支紀年><陰曆年><節日>以及安徽省內<天氣>資訊 <?php /** * Class Lunar * 農曆 節氣 節日 */ class Lunar {