Quick lookup for every public method. For conceptual guidance and examples, see the guide pages linked in each section header.
Guide: IP Addresses
Creation and parsing:
__construct(string $ip)static parse(int|string $ip): IPstatic parseBin(string $binIP): IPstatic parseHex(string $hexIP): IPstatic parseLong(int|string $longIP, IPVersion|string $version = IPVersion::IPv4): IPstatic parseInAddr(string $inAddr): IP
Representations:
__toString(): stringinAddr(): string— raw packed binary (advanced use)toBin(): stringtoHex(): stringexpanded(): stringtoLong(): numeric-string
Version and metadata:
getVersion(): IPVersiongetMaxPrefixLength(): intgetOctetsCount(): intgetReversePointer(): string
Type classification:
types(): IPType[]primaryType(): IPTypeis(IPType $type): boolisGlobalRoutable(): boolisPrivate(): boolisLoopback(): boolisMulticast(): boolisLinkLocal(): boolisDocumentation(): boolisReserved(): bool
IPv4/IPv6 transition helpers:
isIpv4Mapped(): boolis6to4(): boolisNat64(string $prefix = '64:ff9b::/96'): boolstatic toIpv4Mapped(IP $ipv4): IPstatic fromIpv4Mapped(IP|string $ipv6): IPstatic to6to4(IP $ipv4): IPstatic from6to4(IP|string $ipv6): IPstatic toNat64(IP $ipv4, string $prefix = '64:ff9b::/96'): IPstatic fromNat64(IP|string $ipv6, string $prefix = '64:ff9b::/96'): IP
Arithmetic:
compareTo(IP $other): int— returns -1, 0, or 1distanceTo(IP $other): numeric-string— signed distanceaddOffset(int|string $delta, OverflowMode $mode = OverflowMode::THROW): ?IPnext(int|string $steps = 1): ?IPprevious(int|string $steps = 1): ?IPshift(int $bits, OverflowMode $mode = OverflowMode::THROW): ?IP
Guide: Networks
Creation:
__construct(IP $ip, IP $netmask)__toString(): string— returns CIDR notationstatic parse(string|IP|Network $data): Networkstatic prefix2netmask(int|string $prefixLength, IPVersion|string $version): IPstatic netmask2prefix(IP $ip): intstatic summarize(array $networks): Network[]
Properties:
setIP(IP $ip): voidsetNetmask(IP $ip): voidsetPrefixLength(int $prefixLength): voidgetIP(): IPgetNetmask(): IPgetPrefixLength(): intgetCIDR(): string
Address helpers:
getNetwork(): IP/networkAddress(): IPgetBroadcast(): IP/broadcastAddress(): IPgetWildcard(): IPgetFirstIP(): IPgetLastIP(): IPfirstHost(): IPlastHost(): IPusableHostCount(): int|stringisPointToPoint(): bool
Containment and navigation:
containsIP(IP|string $ip): boolcontainsRange(Range|Network|IP|string $range): boolnextSubnet(): ?NetworkpreviousSubnet(): ?Network
Operations:
exclude(string|IP|Network $exclude): Network[]moveTo(int|string $prefixLength): Network[]getHosts(): RangegetBlockSize(): int|stringgetCountPrecise(): numeric-stringcount(): int
Iterator: current(): IP, key(): int, next(): void, rewind(): void, valid(): bool
Guide: Ranges
Creation:
__construct(IP $firstIP, IP $lastIP)static parse(string $data): Range
Endpoints:
setFirstIP(IP $ip): voidsetLastIP(IP $ip): voidgetFirstIP(): IPgetLastIP(): IP
Containment:
contains(IP|Network|Range $find): bool
Network decomposition:
getNetworks(): Network[]iterateNetworks(): Generator<Network>getFirstNetwork(): NetworkgetLastNetwork(): NetworkgetNthNetwork(int $index): ?NetworkgetSpanNetwork(): Network
Indexing and counting:
addressAt(int|string $offset): ?IPaddressAtOrFail(int|string $offset): IPgetCountPrecise(): numeric-stringcount(): int
Iterator: current(): IP, key(): int, next(): void, rewind(): void, valid(): bool
Guide: Range Sets
Creation:
__construct(iterable $ranges = [])static from(iterable $ranges): RangeSet
Set operations (all accept RangeSet|iterable|Range|Network|IP|string):
union(...): RangeSetintersect(...): RangeSetsubtract(...): RangeSet
Queries:
contains(IP $ip): boolcontainsRange(Range|Network|IP|string $candidate): booloverlaps(Range|Network|IP|string $candidate): bool
Exports:
toCidrs(): Network[]getRanges(): Range[]count(): int
Guide: Parsing
static ip(string $input, int $flags = ParseFlags::DEFAULT): ParsedAddressstatic range(string $input, int $flags = ParseFlags::DEFAULT): Range|Networkstatic any(string $input, int $flags = ParseFlags::DEFAULT): ParsedAddress|Range|Network
Guide: Parsing
| Constant | Value | Description |
|---|---|---|
STRICT |
0 |
Accept only standard IP notation |
ALLOW_PORT |
1 |
Accept port suffix |
ALLOW_ZONE_ID |
2 |
Accept IPv6 zone identifiers |
ALLOW_NON_DECIMAL_IPV4 |
4 |
Accept hex/binary/octal IPv4 |
ALLOW_NON_QUAD_IPV4 |
8 |
Accept 2-part IPv4 shorthand |
ALLOW_WILDCARDS |
16 |
Accept * octets |
DEFAULT |
23 |
Port + Zone + NonDecimal + Wildcards |
Guide: Parsing
final readonly class ParsedAddress {
public IP $ip;
public ?int $port;
public ?string $zoneId;
}Guide: Database Storage | Laravel Integration
store(Network|Range $range, array $metadata = []): voiddelete(Network|Range $range): voidcontains(IP $ip): boolfindContaining(IP $ip): iterable<array{range: Range, metadata: array}>count(): int
__construct(PDO $pdo, string $table = 'ip_ranges')- Implements
RangeStorageInterface
__construct(Connection $connection, string $table = 'ip_ranges')- Implements
RangeStorageInterface
static to16(IP $ip): string— encode to 16-byte binarystatic from16(string $bin, int $version): IP— decode from 16-byte binary
| Case | Value | maxPrefixLength() |
octets() |
maxLong() |
|---|---|---|---|---|
IPv4 |
'IPv4' |
32 | 4 | '4294967295' |
IPv6 |
'IPv6' |
128 | 16 | '340282366920938463463374607431768211455' |
toInt(): int— returns4or6static resolve(self|string $version): self— resolve from string for backward compatibility
UNSPECIFIED, LOOPBACK, BROADCAST, MULTICAST, LINK_LOCAL, DOCUMENTATION, BENCHMARKING, CGNAT, PRIVATE, UNIQUE_LOCAL, RESERVED, GLOBAL
THROW, NULL, WRAP, CLAMP
IPTools\IPToolsServiceProvider— auto-discovered service providerIPTools\Models\IpRange— optional Eloquent modelIPTools\Console\InstallCommand—php artisan iptools:install