matriphe / larinfo
显示Laravel的系统信息(IP地址、操作系统、版本)。
Requires
- php: ^8.2
- ext-pdo: *
- davidepastore/ipinfo: ^0.6
- laravel/framework: ^11.0
- linfo/linfo: ^4.0
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^9.0
README
Larinfo为Laravel提供系统信息。
它通过封装Linfo来显示服务器和客户端的IP地址信息、服务器软件版本和硬件信息。
要求
- PHP版本:
^8.2
。 - Laravel版本:
^11.0
。
针对Windows用户
建议启用com_dot_net
扩展以获取更准确的信息。
在您的php.ini
文件中添加以下行,并确保您的PHPext
目录中存在php_com_dotnet.dll
。
extension=com_dotnet
安装
要使用Composer安装,只需运行以下命令。
composer require matriphe/larinfo
旧版本
- Laravel
5.0
、5.1
、5.2
、5.3
、5.4
、5.5
和5.6
,请使用版本2.2,运行composer require matriphe/larinfo:2.2
。 - Laravel
5.7.*
、5.8.*
、^6.0
、^7.0
和^8.0
,请使用版本3.0.0,运行composer require matriphe/larinfo:3.0.0
。 - Laravel
^9.0
,请使用版本4.0.0,运行composer require matriphe/larinfo:4.0.0
。 - Laravel
^10.0
,请使用版本4.1.0,运行composer require matriphe/larinfo:4.1.0
。
配置
要发布配置(可选),请运行以下命令。
php artisan vendor:publish
然后选择指向Matriphe\Larinfo\LarinfoServiceProvider
提供者的数字。
新的配置将放置在config/larinfo.php
中。
服务配置
使用ipinfo.io服务获取IP地址信息。如果您已注册并拥有访问令牌,请在config/services.php
中的ipinfo
变量中放置您的令牌。
'ipinfo' => [ 'token' => 'your_ipinfo_token', ]
如果您不想触达ipinfo.io的速率限制,建议使用Laravel内置缓存进行缓存。
用法
要获取所有信息,使用外观Larinfo
并调用getInfo()
方法。它将返回此数组示例。
use Larinfo; $larinfo = Larinfo::getInfo();
该命令的结果如下所示。
$larinfo = [ 'host'=> [ 'city'=> 'San Francisco', 'country'=> 'US', 'hostname'=> '', 'ip'=> '104.20.8.94', 'loc'=> '37.7697,-122.3933', 'org'=> 'AS13335 Cloudflare, Inc.', 'phone'=> '', 'postal'=> '94107', 'region'=> 'California', 'timezone' => 'America/Los_Angeles', ], 'client'=> [ 'city'=> 'Bekasi', 'country'=> 'ID', 'hostname'=> '', 'ip'=> '180.252.202.108', 'loc'=> '-6.2349,106.9896', 'org'=> 'AS17974 PT Telekomunikasi Indonesia', 'phone'=> '', 'postal'=> '', 'region'=> '' ], 'server'=> [ 'software'=> [ 'os'=> 'MacOS', 'distro'=> 'MacOS 10.15.7', 'kernel'=> '19.6.0', 'arc'=> 'x86_64', 'webserver'=> 'nginx/1.19.8', 'php'=> '8.0.3' ], 'hardware'=> [ 'cpu'=> 'Intel® Core™ i5-3210M CPU @ 2.50GHz', 'cpu_count'=> 4, 'model'=> 'Apple device', 'virtualization'=> '', 'ram'=> [ 'total'=> 8589934592, 'free'=> 8578883584, 'human_total' => '8.0 GiB', 'human_free' => '15.0 MiB', ], 'swap'=> [ 'total'=> 2147483648, 'free'=> 426246144, 'human_total' => '2.0 GiB', 'human_free' => '406.5 MiB', ], 'disk'=> [ 'total'=> 2999590176768, 'free'=> 1879852326912, 'human_total' => '2.7 TiB', 'human_free' => '1.7 TiB', ] ], 'uptime'=> [ 'uptime'=> '2 days, 12 hours, 13 minutes, 43 seconds', 'booted_at'=> '2021-04-02 15:27:54' ] ], 'database'=> [ 'driver'=> 'MySQL', 'version'=> '8.0.22' ] ];
您还可以使用以下方法
getHostIpinfo
获取主机IP信息(Larinfo::getHostIpinfo()
)getClientIpinfo
获取客户端IP信息(Larinfo::getClientIpinfo()
)getServerInfoSoftware
获取服务器软件信息(Larinfo::getServerInfoSoftware()
)getServerInfoHardware
获取服务器硬件信息(Larinfo::getServerInfoHardware()
)getUptime
获取服务器运行时间(Larinfo::getUptime()
)getServerInfo
获取服务器信息(Larinfo::getServerInfo()
)getDatabaseInfo
获取数据库信息(Larinfo::getDatabaseInfo()
)
Artisan命令
您也可以通过运行以下命令使用larinfo
artisan命令进行检查。
php artisan larinfo
结果示例如下。
Larinfo
=======
+--------------------+------------------------------------------+
| Application |
+--------------------+------------------------------------------+
| PHP version | 8.1.12 |
| Laravel version | 10.4.1 |
+--------------------+------------------------------------------+
| Database |
+--------------------+------------------------------------------+
| Engine | SQLite |
| Version | 3.40.0 |
+--------------------+------------------------------------------+
| Operating System |
+--------------------+------------------------------------------+
| Type | MacOS |
| Name | MacOS 13.2.1 |
| Architecture | arm64 |
| Kernel Version | 22.3.0 |
+--------------------+------------------------------------------+
| Uptime |
+--------------------+------------------------------------------+
| Uptime | 5 days, 13 hours, 38 minutes, 25 seconds |
| First Boot | 2023-03-19 22:36:46 |
+--------------------+------------------------------------------+
| Server |
+--------------------+------------------------------------------+
| IP Address | 79.224.166.123 |
| Private IP Address | |
| Hostname | p5fe9ab9c.dip0.t-ipconnect.de |
| Provider | AS3320 Deutsche Telekom AG |
| City | Berlin |
| Region | Berlin |
| Country | DE |
+--------------------+------------------------------------------+
| Timezone |
+--------------------+------------------------------------------+
| Application | UTC |
| Server Location | Europe/Berlin |
+--------------------+------------------------------------------+
| Hardware |
+--------------------+------------------------------------------+
| Model | Mac mini |
| CPU count | 8 |
| CPU | Apple M1 |
+--------------------+------------------------------------------+
| RAM |
+--------------------+------------------------------------------+
| Total | 16.0 GiB |
| Free | 54.0 MiB |
+--------------------+------------------------------------------+
| SWAP |
+--------------------+------------------------------------------+
| Total | 3.0 GiB |
| Free | 964.7 MiB |
+--------------------+------------------------------------------+
| Disk Space |
+--------------------+------------------------------------------+
| Total | 2.2 TiB |
| Free | 1.0 TiB |
+--------------------+------------------------------------------+
运行测试
要运行单元测试,请执行以下命令。
vendor/bin/phpunit --group unit
GitHub Actions
在GitHub Actions上,当创建pull request时,将在相应的操作系统上运行测试,这些操作系统是ubuntu
、macos
和windows
。
要在Ubuntu 20.04 LTS (Focal Fossa)和Ubuntu 22.04 LTS (Jammy Jellyfish)上运行测试,请运行以下命令。
vendor/bin/phpunit --group ubuntu
要在macOS Monterey (12)和macOS Ventura (13)上运行测试,请运行以下命令。
vendor/bin/phpunit --group macos
要在Windows Server 2019和Windows Server 2022上运行测试,请运行以下命令。
vendor/bin/phpunit --group windows
许可证
有关更多信息,请参阅许可证文件。