longman / ip-tools
用于操作IPv4和IPv6的PHP IP工具
1.2.1
2016-10-23 20:08 UTC
Requires
- php: >=5.5
- ext-bcmath: *
Requires (Dev)
- phpspec/phpspec: ~2.1
- phpunit/phpunit: ~4.1
- squizlabs/php_codesniffer: ~2.3
README
通用的IPv4和IPv6操作IP工具。
使用Composer安装此包
通过Composer安装此包。编辑你的项目文件composer.json
以包含longman/ip-tools
。
创建composer.json文件
{ "name": "yourproject/yourproject", "type": "project", "require": { "longman/ip-tools": "~1.1.0" } }
然后运行composer update
或者在你的命令行中运行命令
composer require longman/ip-tools
用法
<?php $loader = require __DIR__.'/vendor/autoload.php'; use Longman\IPTools\Ip; // Validating $status = Ip::isValid('192.168.1.1'); // true $status = Ip::isValid('192.168.1.256'); // false // ip2long, long2ip /// IPv4 $long = Ip::ip2long('192.168.1.1'); // 3232235777 $dec = Ip::long2ip('3232235777'); // 192.168.1.1 /// IPv6 $long = Ip::ip2long('fe80:0:0:0:202:b3ff:fe1e:8329'); // 338288524927261089654163772891438416681 $dec = Ip::long2ip('338288524927261089654163772891438416681', true); // fe80::202:b3ff:fe1e:8329 // Matching /// IPv4 $status = Ip::match('192.168.1.1', '192.168.1.*'); // true $status = Ip::match('192.168.1.1', '192.168.*.*'); // true $status = Ip::match('192.168.1.1', '192.168.*.*'); // true $status = Ip::match('192.168.1.1', '192.168.0.*'); // false $status = Ip::match('192.168.1.1', '192.168.1/24'); // true $status = Ip::match('192.168.1.1', '192.168.1.1/255.255.255.0'); // true $status = Ip::match('192.168.1.1', '192.168.0/24'); // false $status = Ip::match('192.168.1.1', '192.168.0.0/255.255.255.0'); // false $status = Ip::match('192.168.1.5', '192.168.1.1-192.168.1.10'); // true $status = Ip::match('192.168.5.5', '192.168.1.1-192.168.10.10'); // true $status = Ip::match('192.168.5.5', '192.168.6.1-192.168.6.10'); $status = Ip::match('192.168.1.1', array('122.128.123.123', '192.168.1.*', '192.168.123.124')); // true $status = Ip::match('192.168.1.1', array('192.168.123.*', '192.168.123.124')); /// IPv6 $status = Ip::match('2001:cdba:0000:0000:0000:0000:3257:9652', '2001:cdba:0000:0000:0000:0000:3257:*'); // true $status = Ip::match('2001:cdba:0000:0000:0000:0000:3257:9652', '2001:cdba:0000:0000:0000:0000:*:*'); // true $status = Ip::match('2001:cdba:0000:0000:0000:0000:3257:9652', '2001:cdba:0000:0000:0000:0000:3257:1234-2001:cdba:0000:0000:0000:0000:3257:9999'); // true $status = Ip::match('2001:cdba:0000:0000:0000:0000:3258:9652', '2001:cdba:0000:0000:0000:0000:3257:*'); // false $status = Ip::match('2001:cdba:0000:0000:0000:1234:3258:9652', '2001:cdba:0000:0000:0000:0000:*:*'); // false $status = Ip::match('2001:cdba:0000:0000:0000:0000:3257:7778', '2001:cdba:0000:0000:0000:0000:3257:1234-2001:cdba:0000:0000:0000:0000:3257:7777'); // false
此代码可在Github上找到。欢迎Pull requests。
故障排除
如果你喜欢走在前端,请将你发现的任何错误报告到PHP IP Tools问题页面。
贡献
有关信息,请参阅CONTRIBUTING.md。
许可协议
请参阅此存储库中包含的LICENSE,以获取MIT许可协议的完整副本,该项目遵循此协议。
鸣谢
完整的鸣谢列表请见CREDITS。