The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Plack::Middleware::IPMatch - 查找指定 IP (CIDR) 所对应的标签 LABEL

SYNOPSIS

  enable 'Plack::Middleware::IPMatch',
      IPFile => [ '/path/to/CT.txt', '/path/to/CNC.txt' ];

DESCRIPTION

Plack::Middleware::IPMatch 这个是使用, Net::IP::Match::Trie 来实现的超级快的进行 CIDR 转换成指定的 LABEL 的模块. 因为是使用的前缀树实现, 所以有着超级快的查询速度.

CONFIGURATION

IPFile

  IPFile =>   '/path/to/CT-IP.dat';
  IPFile => [ '/path/to/CT-IP.dat',   '/path/to/CNC-IP.dat' ];

这个需要本身有自己整理过的 IP 数据库, 然后给整个数据库存成文本格式

IPFile 格式

格式需要自己来收集 IP 数据, 存成如下格式的文本

  112.122.128.0/21,CNC-AH-AH
  112.122.136.0/23,CNC-AH-AH
  112.122.138.0/25,CNC-AH-AH
  112.122.138.128/29,CNC-AH-AH
  112.122.138.144/28,CNC-AH-AH
  112.122.138.160/27,CNC-AH-AH
  112.122.138.192/26,CNC-AH-AH

Header

IPMATCH_LABEL

默认会在 $env 的哈希中增加 IPMATCH_LABEL 的字段的 Header, 这就是查询的结果

可以使用如下的方式来访问

  $env->{IPMATCH_LABEL}

MATCH_IP

进行 ip 转换时候所使用的 IP 地址, 默认会存到这个 header 中传给应用

AUTHOR

扶凯 <iakuf@163.com>

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

Net::IP::Match::Trie

Plack::Middleware::GeoIP