【自制小工具】快速批量查询IP归属地(自动去重、按国内外汇总,并智能识别出错误IP)

这篇具有很好参考价值的文章主要介绍了【自制小工具】快速批量查询IP归属地(自动去重、按国内外汇总,并智能识别出错误IP)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:Eason_LYC

不放弃,不为别的,只想活成自己心中的样子~

领域:WEB安全、网络攻防

关注WEB安全、网络攻防。我的专栏文章知识点全面细致,逻辑清晰、结合实战,让你在学习路上事半功倍,少走弯路!

博客描述:

一个人的价值,在于他所拥有的,而不是他会的。所以可以不学无数,但不能一无所有!

个人社区:极乐世界-技术至上

我们追求技术至上,这是我们理想中的极乐世界~(关注我即可加入社区)

背景

如何才能快速提升自己的编写脚本的能力呢,我之前文章中说过“为了学习而学习,永远学不好”。所以本文以我在实际工作中的真实场景为例,讲解自制小工具的思路。

每个人在生活中都会遇到各种问题,将问题抽象梳理出来,利用已掌握或临时自学拼凑的编程知识,来实现自己的目标,你将事半功倍,能力提升水到渠成。

在实际安全工作中,经常会从各种渠道获取大量IP,在进行分析前,首先需要对IP进行如下几项处理

  • IP是否有重复
  • IP是否有错误
  • IP归属地是哪里
  • IP有多少国内或者国外的

上述几件事看上去很简单,网上也有现成的工具或网站可以使用。但是在实际工作中往往IP数量少则上万个,多则十几万,甚至是几十万。而且往往要半小时内出结果。面对这样的实际工作场景,人工或利用半成品工具明显不再合适。

为了在单位继续干下去,也不想累的的猝死,只能自己动手开发了一个小工具。下面就将这个小工具介绍给大家。

成果

是的,没有看错,先看成果,大家才有继续看下去的动力不是?
如何批量判断ip地址是否为国内地址,个人小工具分享,web安全,网络安全,python,脚本开发,ip归属地查询
一共7万多个原始IP,下面几个数据一加等于去重后的IP数。详细功能数据如下:

  1. 软件自动去重
  2. 查询归属地
  3. 按国内国外分类汇总
  4. 对未查询到和错误IP进行汇总
  5. 结果自动保存为xlsx格式,方便直接汇报
  6. 总耗时20s,这是封装exe可执行文件后的运行时间,脚本直接运行,相同数据10s左右能完成。
    最终excel成果:
    如何批量判断ip地址是否为国内地址,个人小工具分享,web安全,网络安全,python,脚本开发,ip归属地查询
    如何批量判断ip地址是否为国内地址,个人小工具分享,web安全,网络安全,python,脚本开发,ip归属地查询
    如何批量判断ip地址是否为国内地址,个人小工具分享,web安全,网络安全,python,脚本开发,ip归属地查询

以上就是软件的最终成果,不知各位看官是否满意,至少自制这个小工具后,让我工作轻松不少。

如何使用

工具设计之出就明确,一定要非常容易使用,力求0门槛傻瓜式使用。
打开工具,仅有三个文件,一个程序,一个使用说明,一个文件夹,作用见下图
如何批量判断ip地址是否为国内地址,个人小工具分享,web安全,网络安全,python,脚本开发,ip归属地查询
使用的要求只有如下两条:

  1. 将你需要处理的大量IP,在txt格式文件中保存为一列即可,名字最好取ip.txt,然后放到db文件夹中就好了。如下图

如何批量判断ip地址是否为国内地址,个人小工具分享,web安全,网络安全,python,脚本开发,ip归属地查询
2. 双击exe运行程序,结果会自动生成result.xlsx。双击后运行界面如下
如何批量判断ip地址是否为国内地址,个人小工具分享,web安全,网络安全,python,脚本开发,ip归属地查询
运行过程中的界面
如何批量判断ip地址是否为国内地址,个人小工具分享,web安全,网络安全,python,脚本开发,ip归属地查询
结果生成界面
如何批量判断ip地址是否为国内地址,个人小工具分享,web安全,网络安全,python,脚本开发,ip归属地查询

步骤已经设计的很简略了,方便易上手有没有

使用查询库文件

本文使用归属地查询的库,是qqwry。这个可以手动从github上下载最新的版本,替换即可。
其实有更好的库,但是qqwry真的很稳,综合考虑就用这个了。

其实软件自带的这个,已经满足日常使用了。

工具代码分析

本工具使用python编写,后续使用Pyinstaller工具,将脚本生成exe可执行程序。

  • 原始脚本中,引用的库只有3个
from qqwry import QQwry # 归属地查询库,实现核心功能
import xlsxwriter # 生成、操作xlsx的库,将结果归类汇总,已特定字段输出到文档中,形成最终成果。
import time # 用于计时,统计执行一次任务运行的时间
  • 根据上文的梳理,我们的需求很明确。所以实现方法和思路如下:
def input_txt():
	"""
	获取输入IP源文件
	1、文件路径,默认为.\db\ip.txt
	2、打开文件,以行形式读取内容(单个ip)raw_ip,另外统计原始行数 raw_num
	3、初步过滤,去掉每行ip首位多余的空格,去重,统计去重后行数 file_num
	
	return raw_ip, raw_num, file_num
	"""
	pass


def check_input(raw_ip):
	"""
	对各种异常输入的处理,并将异常IP统计到error_ip列表中。目前能是别的异常情况如下【根据实际,持续更新】
	1、IP组成不是4个数
	2、任意一个数字出现4位数
	3、任意一位数出现异常(非数字,0-255之外,非整数...)
	过滤后再对所有结果进行去重,无问题IP放到ip列表中
	
	return ip, error_ip   
	"""
	pass


def output_excel(list_home, list_foreign, list_unknown, list_error):
	"""
	xlsxwriter这个库使用方式比较固定,根据自己需要设置excel各字段内容和排版 
	"""
	pass


def ip_search():
	"""
	主程序,逻辑是调用上述各方法,获取正常ip后,再调用qqwry库,查询ip归属地查询。
	另外,cmd中输出内容和格式我也在这里进行的定制。
	"""
	pass


if __name__ == '__main__':
    start = time.time()
    ip_search()
    end = time.time()
    print('耗时: ', round(end - start, 0))
    input("please input any key to exit!")

整个脚本算上空行,一共才164行,真是短小精悍。但是在工作中真的管用。
就像我之前文章中说过的那句话“学以致用才是关键,为了学习而学习,永远学不好”。

不足之处

自己写的软件,不足之处简直太了解了,那我就自爆家丑了。

  1. 无法识别IPv6
  2. 错误处理中,如原IP文件中出现中文句号则会出现错误不再执行,这个我后续完善下
  3. 归属地查询库只适用单一的qqwry,太low了
  4. 不支持自动更新查询库,这个主要考虑网安工作环境往往不允许连外网,小工具安全起见也不要有连接外网的功能。

反思下上面的问题,其实都应该早早修正。对异常输入不断优化,增加稳定性;库改为多个常用主流查询库,可根据实际情况选择用哪个;自动更新\手动更新,可人工选择。

视频演示(各位看官如满意请对视频三连支持,您的三连是我创作下去的动力!)

【自制小工具】快速批量查询IP归属地(自动去重、按国内外汇总,并智能识别出错误IP)文章来源地址https://www.toymoban.com/news/detail-780927.html

到了这里,关于【自制小工具】快速批量查询IP归属地(自动去重、按国内外汇总,并智能识别出错误IP)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何利用 IP 归属地查询 API 精准锁定用户位置

    在互联网时代,IP 地址扮演着非常重要的角色,它可以帮助我们追踪网站访问者、优化网络服务等等。而 IP 归属地则更进一步,它可以帮助我们精确地定位 IP 地址所在的地理位置,为数据分析、网络安全、市场调研等领域提供了极大的帮助。 本文将介绍一种 IP归属地-IPv4 区

    2023年04月20日
    浏览(43)
  • java获取ip地址以及ip归属地工具类

    需要ip2region.db文件,可以前往github下载 欢迎访问我的博客网站: www.yqiu.top

    2024年02月22日
    浏览(49)
  • 一步搞定IP地址查询:这个在线工具帮你快速掌握设备的位置信息!

    前言   今天分享一个免费的在线工具来查询IP地址所在的地理位置。可以通过IP地址所属的网络运营商和其他相关信息来确定设备的位置,包括国家、地区、城市和经纬度等信息。 Ip-API 官网地址: https://ip-api.com/ 使用示例    该工具除了提供界面查询,还贴心的提供了AP

    2023年04月24日
    浏览(54)
  • dig批量域名逆向查询ip

    iplist.txt 中内容 效果图: dig其他选项参数: 从指定的dns服务器进行查询

    2024年02月10日
    浏览(48)
  • 使用PowerCLI批量查询IP是否存在

      一、【写在前面】 PowerCLI是VMware的VSphere的CLI工具,需要运行在PowerShell上,有时候接手比较古老的VCSA(vcenter)版本会不得不用PowerCLI,因为其他语言的SDK传进去很麻烦,不用脚本又会很累。 今天水一个批量查IP是否存在的脚本,非常简单一个循环一个数组,但是考虑到Pow

    2024年02月01日
    浏览(81)
  • 站长工具seo综合查询-批量查询域名扫描域名查询收录排名蜘蛛

    站长工具seo综合查询,什么是站长工具SEO查询?就是包含了站长平时用的所有功能,今天给大家分析一款全能的站长工具SEO综合查询包: 批量排名查询-批量网站收录查询-批量挖掘-批量文章采集-批量文章伪原创-批量文章发布到各大网站-主动推送搜索引擎收录

    2024年02月08日
    浏览(57)
  • ElasticSearch|ES 快速批量查询 doc 的 _id 的方法

    已更新整合到新文章:https://dataartist.blog.csdn.net/article/details/130139631 比较慢的查询方法:如果使用如下 body 查询 ES 索引中内容的话,实际上应该会遍历索引中所有字段,如果字段内容很长的话,速度会比较慢: 结果形如: 比较快的查询方法:如果使用如下 body 查询 ES 索引中

    2024年02月14日
    浏览(51)
  • 笔记|ElasticSearch|ES 快速批量查询 doc 的 _id 的方法

    已更新整合到新文章:https://dataartist.blog.csdn.net/article/details/130139631 比较慢的查询方法:如果使用如下 body 查询 ES 索引中内容的话,实际上应该会遍历索引中所有字段,如果字段内容很长的话,速度会比较慢: 结果形如: 比较快的查询方法:如果使用如下 body 查询 ES 索引中

    2024年02月12日
    浏览(44)
  • 【获取IP归属地】Java如何实现通过IP获取IP归属地 [离线+在线](附代码,2023年亲测有效)

    【写在前面】 编撰这篇文章还得从之前做安全业务需求说起,我们都知道安全攻击都是在某台客户机上执行某些恶意操作(sql注入,DoS/DDoS攻击),致使服务端响应异常崩溃亦或响应数据被篡改,那么怎么去阻止这些东西呢? 首先我想到的是对访问的web端做一个IP的校验(好

    2023年04月24日
    浏览(46)
  • IP归属地与IP定位

    IP归属地查询是指根据给定的IP地址,确定该IP地址所属的地理位置或网络服务提供商。这种查询可以帮助用户了解到访者的地理位置,有助于网络安全、反垃圾邮件等应用。  在实际应用中,IP归属地查询常用于以下几个方面: 网络安全:通过IP归属地查询,可以确定访问者

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包