[
  {
    "path": "README.md",
    "content": "# qqwry.dat\n\n> 纯真(CZ88.NET)自2005年起一直为广大社区用户提供社区版IP地址库，只要获得纯真的授权就能免费使用，并不断获取后续更新的版本。如果有需要免费版IP库的朋友可以前往纯真的官网进行申请。\n> 纯真除了免费的社区版IP库外，还提供数据更加准确、服务更加周全的商业版IP地址查询数据。纯真围绕IP地址，基于 网络空间拓扑测绘 + 移动位置大数据 方案，对IP地址定位、IP网络风险、IP使用场景、IP网络类型、秒拨侦测、VPN侦测、代理侦测、爬虫侦测、真人度等均有近20年丰富的数据沉淀。\n\n## IP地址解析 Demo：\n\n- [Perl version](./ip_query.pl)\n\n\n## Changelog\n\n* [QQ IP数据库 纯真版 20231122](./20231122/)\n  - 记录总数：547299条\n  - 更新日期：2023年11月22日\n  - 数据库版本：纯真\n"
  },
  {
    "path": "ip_query.pl",
    "content": "#!/usr/bin/perl -w\nuse strict;\nuse v5.12;\n\nuse utf8;\nuse Encode;\nuse IP::QQWry::Decoded;\nuse Carp qw( croak );\n\nbinmode(STDIN,  ':encoding(utf8)');\nbinmode(STDOUT, ':encoding(utf8)');\nbinmode(STDERR, ':encoding(utf8)');\n\nmy $qqwry = IP::QQWry::Decoded->new('qqwry.dat', 'gbk');\n\nopen my $out_fh, '>>', 'ipinfo.txt'\n    or croak \"Can't open file: $!\";\n\nwhile (<DATA>) {\n    my $ip   = chomp($_);\n    my $no   = $.;\n    my $info = $qqwry->query($ip);\n    my $pro  = qw{ };\n    \n    if ( $info =~ /^(.*?省|宁夏|广西|新疆|内蒙古|.*?市)/ ) {\n        $pro = $1;\n    }\n    \n    print           \"$no\\t$ip\\t$info\\t$pro\\n\";\n    print {$out_fh} \"$no\\t$ip\\t$info\\t$pro\\n\";\n    $out_fh->autoflush(1);\n}\n\n__DATA__\n58.241.163.163\n218.4.127.202\n49.67.233.148\n124.116.225.38\n123.126.22.198\n182.114.86.20\n61.133.220.114\n223.146.125.163\n180.111.11.41\n60.222.139.76\n110.187.218.8\n180.111.11.41\n112.94.67.249\n110.88.226.96\n117.88.81.6\n218.240.149.50\n124.73.134.115\n"
  }
]