项目作者: matomo-org

项目描述 :
Network component: manipulate IP addresses (ipv4, ipv6) in PHP used in the Matomo project
高级语言: PHP
项目地址: git://github.com/matomo-org/component-network.git
创建时间: 2014-10-15T01:01:08Z
项目社区:https://github.com/matomo-org/component-network

开源协议:GNU Lesser General Public License v3.0

下载


Matomo/Network

Component providing Network tools.

Build Status

Installation

With Composer:

  1. {
  2. "require": {
  3. "matomo/network": "*"
  4. }
  5. }

Usage

IP

To manipulate an IP address, you can use the Matomo\Network\IP class:

  1. $ip = IP::fromStringIP('127.0.0.1');
  2. // IPv6
  3. $ip = IP::fromStringIP('::1');
  4. // In binary format:
  5. $ip = IP::fromBinaryIP("\x7F\x00\x00\x01");
  6. echo $ip->toString(); // 127.0.0.1
  7. echo $ip->toBinary();
  8. // IPv4 & IPv6
  9. if ($ip instanceof IPv4) {}
  10. if ($ip instanceof IPv6) {}
  11. // Hostname reverse lookup
  12. echo $ip->getHostname();
  13. if ($ip->isInRange('192.168.1.1/32')) {}
  14. if ($ip->isInRange('192.168.*.*')) {}
  15. // Anonymize an IP by setting X bytes to null bytes
  16. $ip->anonymize(2);

The Matomo\Network\IPUtils class provides utility methods:

  1. echo IPUtils::binaryToStringIP("\x7F\x00\x00\x01");
  2. echo IPUtils::stringToBinaryIP('127.0.0.1');
  3. // Sanitization methods
  4. $sanitizedIp = IPUtils::sanitizeIp($_GET['ip']);
  5. $sanitizedIpRange = IPUtils::sanitizeIpRange($_GET['ipRange']);
  6. // IP range
  7. $bounds = IPUtils::getIPRangeBounds('192.168.1.*');
  8. echo $bounds[0]; // 192.168.1.0
  9. echo $bounds[1]; // 192.168.1.255

License

The Network component is released under the LGPL v3.0.