当前位置:

首页 > 编程开发 > perl批量查询ip归属地的方法代码

perl批量查询ip归属地的方法代码

最近业务上需要根据客户IP地址来过滤某些地区的访问,一开始想直接用IP数据库,但纯真数据库的解析逻辑对时间紧迫的我来说实在有些复杂。在群里求助后,多亏黑影子和扶凯推荐了 IP::QQWry::Decoded 这个模块——它专为读取QQWry纯真数据库设计,用起来比想象中简单太多。 直接上代码,核心逻

本文目录

    最近业务上需要根据客户IP地址来过滤某些地区的访问,一开始想直接用IP数据库,但纯真数据库的解析逻辑对时间紧迫的我来说实在有些复杂。在群里求助后,多亏黑影子和扶凯推荐了 IP::QQWry::Decoded 这个模块——它专为读取QQWry纯真数据库设计,用起来比想象中简单太多。

    perl批量查询ip归属地的方法代码

    直接上代码,核心逻辑其实就一行查询调用,剩下的都是常规处理:

    复制代码 代码如下:

    #!/usr/bin/perl
    use IP::QQWry::Decoded;
    use Encode;
    use utf8;
    binmode(STDIN, ':encoding(utf8)'); # 这三行
    binmode(STDOUT, ':encoding(utf8)'); # 抄别人的
    binmode(STDERR, ':encoding(utf8)'); # 用来输出中文,和拿中文查找
    my $qqwry=IP::QQWry::Decoded->new('qqwry.dat','gbk');
    open UNUSE,'iplist.txt';
    while (){
    ($id,$ip,$key)=/(\d+)\s+(.*?)\s+(.*)/;
    my $info=$qqwry->query("$ip"); # 其实关键代码就这一行,哈哈
    printf "%s\t%s\t%s\n",$id,$ip,$key if $info=~/地区名/;
    }
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    PHP 的历史
    PHP 的历史

    PHP源于1995年RasmusLerdorf为追踪主页访问信息编写的脚本,后经重写形成PHP/FI。1997年PHP/FI2.0发布,用户数达数千。1998年PHP3.0引入可扩展性及面向对象支持,安装量占全球10%服务器。2000年PHP4.0搭载Zend引擎提升性能,支持HTTPSession等。2004年PHP5.0采用第二代Zend引擎,引入全新对

    Perl进行错误处理和创建子程序的示例
    Perl进行错误处理和创建子程序的示例

    Perl子程序通过sub关键字定义,参数存于@_数组,支持签名特性增强可读性。错误处理包括die抛出异常、warn发出警告、eval块捕获异常并检查$@,系统错误由$!提供描述。条件判断if/unless及Carp模块可精准报告错误位置。

    perl 交叉编译详解
    perl 交叉编译详解

    Perl是一种高级通用解释型动态语言,支持面向过程和面向对象编程,具有强悍字符串处理能力和丰富CPAN模块。交叉编译流程包括下载perl源码及perl-cross补丁,解压整合,指定交叉编译器,然后配置、编译并安装到目标平台。

    perl之print,printf,sprintf使用案例详解
    perl之print,printf,sprintf使用案例详解

    Perl中print直接输出列表或文件,printf支持格式化输出,sprintf仅返回格式化字符串而不输出。三种函数均可指定文件句柄,省略时默认使用标准输出。sprintf可通过参数索引调整输出顺序,常用于变量赋值和字符串的拼接。

    使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接
    使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接

    脚本遍历指定目录,用-h检测符号链接、-e判断目标文件是否存在,筛选失效链接并输出路径,结合xargsrm可批量清理,省去手动查找删除的麻烦。

    Perl6中的垃圾收集
    Perl6中的垃圾收集

    Perl6采用可达性分析与垃圾收集替代Perl5的引用计数,解决了循环引用和多线程同步难题,但牺牲了及时销毁特性。它通过相位器管理外部资源,如END和LEAVE,确保程序退出或作用域结束时释放数据库句柄等有限资源,避免了引用计数固有的缺陷。

    强大的Perl正则表达式实例详解
    强大的Perl正则表达式实例详解

    Perl正则表达式以核心元字符为基础,通过组合实现复杂匹配。实例涵盖IP地址、邮箱、数字、温度、空白行、版本号等常见模式。元字符如^、$、*、+、?、.、()、[]、\d、\s等详细说明,并给出匹配中文、URL、账号、电话、邮政编码等实用表达式。

    Perl学习教程之单行命令详解
    Perl学习教程之单行命令详解

    Perl单行命令是命令行文本处理的利器,利用核心参数如-a、-F、-l、-n、-e、-p可快速完成替换、统计、模块调用等任务。正则能力与极简语法使一行命令替代多行脚本,尤其适合临时文本处理场景,掌握这些参数能大幅提升效率。

    Perl字符串比较和整数比较的区别详解
    Perl字符串比较和整数比较的区别详解

    Perl中字符串比较使用字母操作符如eq、lt等按字典顺序,整数比较则用符号操作符如==、!=、等,二者不可混用。

    使用Perl生成随机密码
    使用Perl生成随机密码

    使用Perl编写脚本,通过命令行参数控制密码的字符种类(大小写字母、数字、特殊符号)和长度,确保每种指定类型至少出现一次,并支持唯一字符模式避免重复,默认密码长度为9。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。