givi / ipman
IP library with useful functions
dev-master
2020-05-11 14:03 UTC
Requires
- php: >=7.0
- geoip2/geoip2: ~2.0
This package is not auto-updated.
Last update: 2024-05-08 08:34:36 UTC
README
Useful IP tools for php
Instalation
composer require givi/ipman
Permissions
Created By: Givi Papava
Version: 1.0
Language: PHP
Change Log
Name | Version | Description | Date |
---|---|---|---|
PHP ip tools | 1.0.0 | In Production | 03-14-2020 |
Usage
IP
$loader = require __DIR__.'/vendor/autoload.php'; use GiviPapava\IPMan\IPMan; $ipMan = new IPMan(); // Check if ip is valid echo $ipMan->isValidIp('162.168.1.321'); // true, false // parse, combined parseLong,parseBin and parseHex echo $ipMan->parse('2130706433','long'); // 127.0.0.1 echo $ipMan->parse('11000100101010000100000100100001','bin'); // 196.168.65.33 echo $ipMan->parse('0b002001','hex'); // 10.0.32.1 // checks if IP is valid IPv4. echo $ipMan->isV4('182.168.1.1'); //true // checks if IP is valid IPv6. echo $ipMan->isV6('2001:db8:0:1:1:1:1:1'); //true // parselong echo $ipMan->parseLong('2130706433'); // 127.0.0.1 // parseBin echo $ipMan->parseBin('11000100101010000100000100100001'); // 196.168.65.33 // parseHex echo $ipMan->parseHex('0a002001'); // 10.0.32.1 // Get ip version echo $ipMan->getIpVersion('182.168.1.1'); // ipv4 echo $ipMan->getIpVersion('2001:db8:0:1:1:1:1:1'); // ipv6 // ReversePointer echo $ipMan->getReversePointer('182.0.2.5'); // 5.2.0.182.in-addr.arpa echo $ipMan->getReversePointer('162.128.1.1'); // 1.1.128.162.in-addr.arpa // MaxLengthPrefix echo $ipMan->getMaxPrefixLength('2001:db8:0:1:1:1:1:1'); // 128 // octetsCount echo $ipMan->getOctetsCount('2001:db8:0:1:1:1:1:1'); // 16 // Match echo $ipMan->match('162.128.1.1', '162.128.1.*'); // true echo $ipMan->match('162.128.1.1', '162.128.0.*'); // false // Ip in Randge echo $ipMan->ipInRange('127.0.0.1','127.0.0.0/24'); // true
Location
// Get generic location based on ip echo $ipMan->getIpLocation('182.0.2.5'); { "ip": "182.0.2.5", "iso_code": "ID", "country": "Indonesia", "city": "Bali", "sub_division":"Sumatra", "latitude": "-6.175", "longitude":106.8286, "network ":"182.0.0.0\/17" } // Get generic latitue,longitute based on ip echo $ipMan->getIPLatitureAndLongitute('182.0.2.5'); { "latitude":-6.175, "longitude":106.8286 }
Network
echo $ipMan->cidrToMask('182.0.2.5'); // "255.255.252.0" echo $ipMan->countSetbits($number) // int(22) echo $ipMan->validNetMask('255.255.252.0'); // true echo $ipMan->validNetMask('127.0.0.1'); // false echo $ipMan->maskToCidr('255.255.252.0'); // int(22) echo $ipMan->alignedCIDR('127.0.0.1','255.255.252.0'); //string(12) "127.0.0.0/22"