PHPackages                             michaelcrowcroft/laravel-cloud-ip - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. michaelcrowcroft/laravel-cloud-ip

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

michaelcrowcroft/laravel-cloud-ip
=================================

Track the IP ranges in use by cloud providers and determine if IP addresses are associated with them. Compatable with both IPv4 and IPv6.

0.1.1(2y ago)19MITPHPPHP ^8.1

Since Oct 13Pushed 2y ago1 watchersCompare

[ Source](https://github.com/MichaelCrowcroft/laravel-cloud-ip)[ Packagist](https://packagist.org/packages/michaelcrowcroft/laravel-cloud-ip)[ RSS](/packages/michaelcrowcroft-laravel-cloud-ip/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (8)Versions (3)Used By (0)

☁️ Track Cloud Provider IPs
===========================

[](#️-track-cloud-provider-ips)

Track IP ranges in use by cloud providers and determine if IP addresses are associated with them. Compatable with both IPv4 and IPv6.

**Cloud providers currently supported:**

- Amazon Web Services
- Google Cloud Platform

**Coming Soon:**

- Azure
- Cloudflare

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require michaelcrowcroft/laravel-cloud-ip
```

The package will automatically register itself.

While the package doesn't publish a migration file, you do need to run its migrations before using.

```
php artisan migrate
```

Now that you have migrated the `cloud_ip` table you can use the provided artisan command to populate the table with cloud provider's published IP ranges.

```
php artisan cloudip:get
```

Usage
-----

[](#usage)

Once the package is installed you can access information about the IP addresses cloud providers are using through `CloudIP` model. A list of th fields associated are below. This can be used like any other eloquent model.

A method is provided to select a record associated with an IP. We only select the first record, because one IP might be in multiple ranges that cloud providers use for difference services. Ultimately they will all come back to the same cloud provider though. This accepts an IP address as a long, hex, or in dot notation (as a string).

```
public function cloudIP()
{
    public static function HasIP($ip): self|null
    {
        $ip = IP::parse($ip);

        return CloudIP::where('first_ip', '=', $ip->toLong())
            ->first();
    }
}
```

This can be used as follows, returning the single CloudIP record that the IP is associated with if it is in fact associated with a cloud provider.

```
CloudIP::hasIP('3.2.34.0')->get();
```

Provided Fields
---------------

[](#provided-fields)

- **ip\_prefix:** A range of IPs in CIDR notation.
- **first\_ip:** The first IP in the range as a long.
- **last\_ip:** The last IP in the range as a long.
- **type:** Whether an IP range is IPv4 or IPv6.
- **provider:** The cloud provider the IP range is associated with.

Extra Tip
---------

[](#extra-tip)

Cloud providers don't often change their IP addresses in use, but it can be worth setting up provided artisan command to run weekly in the scheduler to make sure your Cloud IP data is up to date.

```
// In your app/Console/Kernel.php file
protected function schedule(Schedule $schedule): void
{
    $schedule->command('cloudip:get')->weekly();
}
```

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

941d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ed75d6b169ff3c2df85f333847aab53f5ca35c9c4468776e7bdb5b5ffc44fda7?d=identicon)[MichaelCrowcroft](/maintainers/MichaelCrowcroft)

---

Top Contributors

[![MichaelCrowcroft](https://avatars.githubusercontent.com/u/11324235?v=4)](https://github.com/MichaelCrowcroft "MichaelCrowcroft (11 commits)")

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/michaelcrowcroft-laravel-cloud-ip/health.svg)

```
[![Health](https://phpackages.com/badges/michaelcrowcroft-laravel-cloud-ip/health.svg)](https://phpackages.com/packages/michaelcrowcroft-laravel-cloud-ip)
```

###  Alternatives

[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

22.8k69.3k](/packages/grumpydictator-firefly-iii)[gehrisandro/tailwind-merge-laravel

TailwindMerge for Laravel merges multiple Tailwind CSS classes by automatically resolving conflicts between them

341682.2k18](/packages/gehrisandro-tailwind-merge-laravel)[backpack/basset

Dead-simple way to load CSS or JS assets only once per page, when using Laravel 10+.

202832.4k6](/packages/backpack-basset)[firefly-iii/data-importer

Firefly III Data Import Tool.

7545.8k](/packages/firefly-iii-data-importer)[blair2004/nexopos

The Free Modern Point Of Sale System build with Laravel, TailwindCSS and Vue.js.

1.2k2.3k](/packages/blair2004-nexopos)[nickurt/laravel-akismet

Akismet for Laravel 11.x/12.x/13.x

97139.6k2](/packages/nickurt-laravel-akismet)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
