天融信防火墙IP封锁列表纯IP提取以及IP属地批量查询与筛选

从天融信防火墙导出IP封锁列表

操作较为简单不过多阐述。这里导出为CSV格式文件,可以使用Excel打开。

找特征,使用公式提取IP

通过观察,所有IP地址均在 ' ' (单引号)内,使用VBA代码从单元格中提取单引号,代码如下。

=MID(A3,FIND("'",A3)+1,FIND("'",A3,FIND("'",A3)+1)-FIND("'",A3)-1)

这里可以根据自己需求更改相应未知参数,例如:现在要提取A5内双引号的内容,代码如下。

=MID(A5,FIND("""",A5)+1,FIND("""",A5,FIND("""",A5)+1)-FIND("""",A5)-1)

然后将公式应用到所有需要提取值的B列。鼠标放到右下角,变成小十字时双击,将公式应用到所有列。

IP数据提取成功,但是放到txt发现IP是带有一些符号的

那么再把这些符号通过word批量替换功能删除即可

将符号复制直接替换如图:

 

使用脚本批量查IP。(脚本已做注释,无需登录+key)

编写IP归属地查询python脚本,并导出csv格式文档。

# 导入需要的模块
import requests,openpyxl,re,os,json,time
from multiprocessing import Pool

# 设置线程数
thread=20

# 设置查询IP归属地的接口地址
url = 'http://ip.zxinc.org/api.php?type=json&ip='
# 设置请求头
header={
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.1) Gecko/20100101 Firefox/78.0',
'Host':'ip.zxinc.org',
}

# 定义一个函数,用于向接口发送请求,并返回IP归属地信息
def query(ip):
    # 去掉IP地址两端的空白字符
    #ip=ip.strip()
    try:
        # 发送POST请求,设置超时时间为10秒
        r = requests.post(url+ip,headers=header,timeout=10)
        # 设置响应的编码为utf-8
        r.encoding = 'utf-8'
        # 使用正则表达式从响应的文本中提取location字段的值
        regex=re.findall('location":"(.*?)"',r.text)
        # 打印IP地址和归属地信息
        print (ip,regex[0])
        # 返回归属地信息
        return str(regex[0])
    # 如果发生异常,返回None
    except:
        return ['None']

# 定义一个主函数,用于执行以下步骤
def main():
    # 获取当前工作目录
    e=os.getcwd()
    # 获取用户输入的IP文件绝对路径
    in_file=input("请输入IP文件绝对路径:")
    # 打开IP文件
    f=open(in_file,'r')
    # 创建一个Excel工作簿
    wb=openpyxl.Workbook()
    # 获取活动工作表
    ws=wb.active
    # 在工作表的第一行写入源IP和ip归属地两个标题
    ws.cell(1,1).value='源IP'
    ws.cell(1,2).value='ip归属地'
    # 读取IP文件的第一行,去掉空白字符
    line=f.readline().strip()
    # 创建一个进程池,设置线程数
    pool=Pool(thread)
    # 记录开始时间
    time_start=time.time()
    # 初始化一个变量i为2,用于记录行号
    i=2
    # 循环执行以下操作,直到line为空
    while line:
        # 调用query函数,传入line作为参数,得到归属地信息guishu
        guishu=pool.map(query,[line])
        # 在工作表的第i行写入line和guishu的值
        ws.cell(i,1).value=str(line)
        ws.cell(i,2).value=str(guishu[0])
        # i加1,更新行号
        i=i+1
        # 读取IP文件的下一行,去掉空白字符
        line=f.readline().strip()
    # 关闭进程池,等待所有进程结束
    pool.close()
    pool.join()
    # 关闭IP文件
    f.close()
    # 保存Excel工作簿,命名为IP归属地
    wb.save(e + '\\' + 'IP归属.xlsx')
    print('查询用时:%.2f' % (time.time() - time_start) + 's')

if __name__ == '__main__':
    main()

提前将IP地址放入txt文件为list.txt,然后使用python运行,输入txt文件绝对路径,等待运行结束。 

得到IP归属xlsx文件,打开文件后筛选需要得到的IP地址。以北京为例如图:

以上是个人分享,欢迎大佬批评指正。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值