从天融信防火墙导出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地址。以北京为例如图:
以上是个人分享,欢迎大佬批评指正。