Stars: 242
Forks: 19
Pull Requests: 58
Issues: 29
Watchers: 10
Last Updated: 2022-05-19 09:09:54
Immutable value object for IPv4 and IPv6 addresses, including helper methods and Doctrine support.
License: MIT License
Languages: PHP
IP is an immutable value object for (both version 4 and 6) IP addresses. Several helper methods are provided for ranges, broadcast and network addresses, subnet masks, whether an IP is a certain type (defined by RFC's), etc.
This project aims for simplicity of use and any contribution towards that goal - whether a bug report, modifications to the codebase, or an improvement to the accuracy or readability of the documentation - are always welcome.
Full documentation is available in the docs/
folder.
This project includes and adheres to the Contributor Covenant as a Code of Conduct.
This library is fairly similar to how it was in 3.3.1
; the main differences
are:
IPv4
,
IPv6
, and Multi
(for both
version 4 and 6 addresses).IpInterface::factory()
instead of the constructor to
speed up internal processes.<?php
use Darsyn\IP\Exception;
use Darsyn\IP\Version\IPv4;
try {
$ip = IPv4::factory('192.168.0.1');
} catch (Exception\InvalidIpAddressException $e) {
exit('The IP address supplied is invalid!');
}
$companyNetwork = IPv4::factory('216.58.198.174');
if (!$ip->inRange($companyNetwork, 25)) {
throw new \Exception('Request not from a known company IP address.');
}
// Is it coming from the local network?
if (!$ip->isPrivateUse()) {
record_visit($ip->getBinary(), $_SERVER['HTTP_USER_AGENT']);
}
Please see the separate license file included in this repository for a full copy of the MIT license, which this project is licensed under.
If you make a contribution (submit a pull request), don't forget to add your name here!