balambasik/deviceinfo

一个轻量级的库,用于定义基本设备数据。检测将基于UserAgent和IP地址进行。允许您确定:设备类型、操作系统、浏览器、国家。

1.0.0 2021-03-09 20:49 UTC

This package is not auto-updated.

Last update: 2024-09-19 11:26:02 UTC


README

一个轻量级的库,用于定义基本设备数据。检测将基于UserAgent和IP地址进行。允许您确定:设备类型、操作系统、浏览器、国家。

安装

composer require balambasik/deviceinfo

使用方法

获取当前设备信息

<?php

include "vendor/autoload.php";

use Balambasik\DeviceInfo\DeviceInfo;

$devInfo = new DeviceInfo();

print_r($devInfo->getInfo());

结果

Array
(
    [device_type] => desktop
    [os] => windows_10
    [browser] => chrome_desktop
    [geo_code] => US
    [ip] => 8.8.8.8
    [long_ip] => 134744072
    [geo_details] => Array
        (
            [name] => United States of America
            [alfa2] => US
            [alfa3] => USA
            [numeric] => 840
        )
)

资产

您还可以获取图标。(国旗、设备类型、操作系统、浏览器)

<?php

include "vendor/autoload.php";

use Balambasik\DeviceInfo\DeviceInfo;

$devInfo = new DeviceInfo();

print_r($devInfo->getInfo(DeviceInfo::ASSETS_BASE64)); // icons base64
// print_r($devInfo->getInfo(DeviceInfo::ASSETS_URL)); // icons URLs
// print_r($devInfo->getInfo(DeviceInfo::ASSETS_ALL)); URLs and base64

结果

Array
(
    [device_type] => desktop
    [os] => windows_10
    [browser] => chrome_desktop
    [geo_code] => US
    [ip] => 8.8.8.8
    [long_ip] => 134744072
    [geo_details] => Array
        (
            [name] => United States of America
            [alfa2] => US
            [alfa3] => USA
            [numeric] => 840
        )
    [assets] => Array
        (
            [device_type] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcdHlwZXNcZGVza3RvcC5wbmc=
            [os] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcb3Ncd2luZG93c18xMC5wbmc=
            [browser] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcYnJvd3NlcnNcY2hyb21lX2Rlc2t0b3AucG5n
            [geo] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcZmxhZ3NcVVMucG5n
        )
)

自定义IP或UserAgent

使用构造函数

use Balambasik\DeviceInfo\DeviceInfo;

$devInfo = new DeviceInfo("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0", "4.4.4.4");

print_r($devInfo->getInfo(DeviceInfo::ASSETS_BASE64));

使用设置器

<?php

include "vendor/autoload.php";

use Balambasik\DeviceInfo\DeviceInfo;

$devInfo = new DeviceInfo();

$info = $devInfo
    ->setIP("4.4.4.4")
    ->setUserAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0")
    ->getInfo(DeviceInfo::ASSETS_BASE64);

print_r($info);

结果

Array
(
    [device_type] => desktop
    [os] => windows_7
    [browser] => firefox_desktop
    [geo_code] => US
    [ip] => 4.4.4.4
    [long_ip] => 67372036
    [geo_details] => Array
        (
            [name] => United States of America
            [alfa2] => US
            [alfa3] => USA
            [numeric] => 840
        )

    [assets] => Array
        (
            [device_type] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcdHlwZXNcZGVza3RvcC5wbmc=
            [os] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcb3Ncd2luZG93c183LnBuZw==
            [browser] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcYnJvd3NlcnNcZmlyZWZveF9kZXNrdG9wLnBuZw==
            [geo] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcZmxhZ3NcVVMucG5n
        )

)

值列表

<?php

include "vendor/autoload.php";

use Balambasik\DeviceInfo\DeviceInfo;

print_r(DeviceInfo::list());

结果

Array
(
    [device_types] => Array
        (
            [0] => crawler
            [1] => mobile
            [2] => tablet
            [3] => desktop
        )
    [os] => Array
        (
            [0] => ios
            [1] => android
            [2] => symbian
            [3] => black_berry
            [4] => windows_mobile
            [5] => windows_phone
            [6] => windows_10
            [7] => windows_8_1
            [8] => windows_8
            [9] => windows_7
            [10] => windows_server
            [11] => windows_xp
            [12] => windows_2000
            [13] => windows_me
            [14] => mac_os
            [15] => ubuntu
            [16] => linux
            [17] => windows_vista
            [18] => unknown_os
        )
    [browsers] => Array
        (
            [0] => chrome_mobile
            [1] => opera_mobile
            [2] => dolphin_mobile
            [3] => firefox_mobile
            [4] => uc_browser_mobile
            [5] => puffin_mobile
            [6] => safari_mobile
            [7] => edge_mobile
            [8] => ie_mobile
            [9] => android_mobile
            [10] => firefox_desktop
            [11] => opera_desktop
            [12] => edge_desktop
            [13] => chrome_desktop
            [14] => maxthon_desktop
            [15] => safari_desktop
            [16] => ie_desktop
            [17] => unknown_browser
        )
    [countries_codes] => Array
        (
            [0] => XX
            ...
            [249] => ...
        )
    [countries_names] => Array
        (
            [0] => Unknown country
            ...
            [249] => ...
        )
)

依赖项

https://github.com/JayBizzle/Crawler-Detect

https://github.com/serbanghita/Mobile-Detect

https://sypexgeo.net/en/