mileschou/twnicip

Twnic IP

Fund package maintenance!
www.paypal.me/mileschou

v1.0.5 2024-04-17 07:55 UTC

This package is auto-updated.

Last update: 2024-11-17 09:26:03 UTC


README

tests codecov Codacy Badge Latest Stable Version Total Downloads License

檢查是否為台灣 IP 的小工具。

台灣 IP 沒想像中多,這個工具是直接把找到的資料轉成 PHP 原生變數型態的「資料庫」,再使用另一個 Facade 做搜尋。

原始 Database 是不能修改的,只能靠原 repo 更新,而 Facade 層則是可以動態標記 IP 是否為台灣 IP。

Version

  • 0.x 版支援 PHP 7.1 ~ 8.0
  • 1.x 版支援 PHP 8.0+

Installation

透過 Composer 即可安裝:

composer require mileschou/twnicip

Usage

這是主要驗證 IP 來源的 class,使用下面三個方法來確認是否是台灣 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,但原始 repo 沒有更新時,可以自行新增:

$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 的 range 加入。

References

License

The MIT License (MIT). Please see License File for more information.