matriphe/larinfo

Display system information (IP address, OS, versions) for Laravel.

4.2.0 2024-03-17 20:26 UTC

README

Larinfo Total Download Latest Stable Version

Larinfo provide system information for Laravel.

It wraps Linfo to show IP address information on the server and client side, server software versions, and hardware information.

Requirements

  • PHP version: ^8.2.
  • Laravel version: ^11.0.

For Windows User

It is recommended to enable com_dotnet extension to get more accurate information.

In your php.ini file, add this line, and make sure you have php_com_dotnet.dll in your PHP ext directory.

extension=com_dotnet

Installation

To install using Composer, just run this command below.

composer require matriphe/larinfo

Versions

Configuration

To publish the config (optional) run this command below.

php artisan vendor:publish

Then select the number that points to Matriphe\Larinfo\LarinfoServiceProvider provider.

The new config will be placed in config/larinfo.php.

Service Configuration

IP address information is taken using ipinfo.io service. If you've registered and has access token, put your token in the config/services.php inside the ipinfo variable.

'ipinfo' => [
    'token'  => 'your_ipinfo_token',
]

If you don't want to hit ipinfo.io rate limit, it is recommended to cache it using Laravel built-in cache.

Usage

To get all info, use facade Larinfo and call the getInfo() method. It will return this array example.

use Larinfo;

$larinfo = Larinfo::getInfo();

The result of that command is shown below.

$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'
   ]
];

Other method you can use are:

  • getHostIpinfo to get host IP info (Larinfo::getHostIpinfo())
  • getClientIpinfo to get client IP info (Larinfo::getClientIpinfo())
  • getServerInfoSoftware to get server software info (Larinfo::getServerInfoSoftware())
  • getServerInfoHardware to get server hardware info (Larinfo::getServerInfoHardware())
  • getUptime to get server uptime (Larinfo::getUptime())
  • getServerInfo to get server info (Larinfo::getServerInfo())
  • getDatabaseInfo to get database info (Larinfo::getDatabaseInfo())

Artisan Command

You also can check using larinfo artisan command, by running this command below.

php artisan larinfo

The example of the result is shown below.

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                                  |
+--------------------+------------------------------------------+

Running Tests

To run the unit tests, execute this following command.

vendor/bin/phpunit --group unit

GitHub Actions

On the GitHub Actions, the tests run on the respective operating system, which are ubuntu, macos, and windows when a pull request is made.

To run the tests on Ubuntu 20.04 LTS (Focal Fossa) and Ubuntu 22.04 LTS (Jammy Jellyfish), run this following command.

vendor/bin/phpunit --group ubuntu

To run the tests on macOS Monterey (12) and macOS Ventura (13), run this following command.

vendor/bin/phpunit --group macos

To run the tests on Windows Server 2019 and Windows Server 2022, run this following command.

vendor/bin/phpunit --group windows

License

Please see License File for more information.