hyqo/ip-utils

1.0.0 2023-03-05 19:41 UTC

This package is auto-updated.

Last update: 2024-06-05 22:09:34 UTC


README

Packagist Version Packagist PHP Version Support GitHub Workflow Status

Install

composer require hyqo/ip-utils

Methods

IpInterface::isValid(string $ip): bool;
IpInterface::isMatch(string $ip, string|array $subnets): bool;
IpInterface::normalize(string $ip): string;
IpInterface::port(string $ip): ?int;

Usage

use Hyqo\Utils\Ip\Ip;

Ip::isValid('192.168.1.0'); //true
Ip::isValid('0:0:0:0:0:0:0:1'); //true

Ip::isMatch('131.0.72.199', '131.0.72.0/22'); //true
Ip::isMatch('131.0.76.199', '131.0.72.0/22'); //false

Ip::isMatch('132.0.72.199', ['131.0.72.0/22', '192.168.1.0/31']); //true

Ip::normalize('127.0.0.1:80'); //127.0.0.1
Ip::normalize('[::1]:80'); //::1

Ip::port('127.0.0.1:80'); //80
Ip::port('[::1]:80'); //80

The Ip class automatically detects IP version, but you can use Ipv4 and Ipv6 classes with the same methods as well.