mileschou / twnicip
Twnic IP
v1.0.5
2024-04-17 07:55 UTC
Requires
- php: ^8.0
- mileschou/ip: ^0.2.0
Requires (Dev)
- fakerphp/faker: ^1.23
- phpbench/phpbench: ^1.2
- phpunit/phpunit: ^9.6
- squizlabs/php_codesniffer: ^3.7
- symfony/console: ^6.0
- symfony/css-selector: ^6.0
- symfony/dom-crawler: ^6.0
README
检查是否为台湾IP的小工具。
台湾IP没有想象中那么多,这个工具是直接把找到的数据转换成PHP原生变量类型的「数据库」,再使用另一个 外观 进行搜索。
原始数据库不能修改,只能通过原仓库更新,而外观层则可以动态标记IP是否为台湾IP。
版本
- 0.x 版本支持 PHP 7.1 ~ 8.0
- 1.x 版本支持 PHP 8.0+
安装
通过 Composer 即可安装:
composer require mileschou/twnicip
使用
这是主要的验证IP来源的类,使用下面三个方法来确认是否是台湾IP:
$twnicIp = new TwnicIp(); $twnicIp->isTaiwan('202.39.128.1'); // isTaiwanByIp() 的別名 $twnicIp->isTaiwanByIp('202.39.128.1'); $twnicIp->isTaiwanByLong(3391586305); // 轉成 IP 即 202.39.128.1
如果有新加入的IP,但原始仓库没有更新时,可以自行添加:
$twnicIp->includeRange('127.0.0.1', '127.0.0.1'); $twnicIp->isTaiwan('127.0.0.1'); // return true
同理,如果某个区段的IP需要被排除时,也可以自行处理:
$twnicIp->excludeRange('127.0.0.1', '127.0.0.1'); $twnicIp->isTaiwan('127.0.0.1'); // return false
私有域在狭义上并不属于台湾的IP。而实际上,机器在台湾,某种程度也算作台湾的IP!
如果想把私有域当作台湾IP的话,可以额外调用下面这个方法:
$twnicIp->includePrivateIp();
里面实际上只是调用 includeRange()
把私有IP的范围加入。
参考
- Twnic IP 列表 - 但此文件看起来已过时,因此改用其他数据库
- IP2LOCATION Lite - 免费且完整的数据库,目前是使用这个
许可证
The MIT License (MIT)。请参阅许可证文件获取更多信息。