使用python调用微步在线接口实现自动化查询IP情报

目录

一、微步在线接口说明

二、官方示例

三、自动化查询IP情报信息


一、微步在线接口说明

        针对入站场景的IP进行分析, 能够提供IP的地理位置、ASN信息,通过判定规则精准判别IP是否恶意、风险严重级别、可信度级别;识别威胁类型,如:漏洞利用(exploit)、傀儡机(Zombie)、代理(Proxy)、可疑(Suspicious)等及相关安全事件或团伙标签。

        个人账号可以提供50次/天的权限。

二、官方示例

import requests

url = "https://api.threatbook.cn/v3/scene/ip_reputation"

query = {
  "apikey":"请替换apikey",
  "resource":"159.203.93.255"
}

response = requests.request("GET", url, params=query)

print(response.json())

三、自动化查询IP情报信息

        在做网络安全运营时,经常遇到IP来探测、攻击,除了分析研判该IP的行为外,还需要借助互联网情报中心进行查询该IP的情报,单个IP的查询稍微简单一些,直接登陆情报中心网站查询即可,但是批量查询的时候就需要用到自动化查询程序。

        以下是我根据微步在线的免费API开发的批量查询脚本,不是专业程序员,仅实现功能。 

import requests
from openpyxl import load_workbook
from openpyxl.styles import Font

url = "https://api.threatbook.cn/v3/scene/ip_reputation"

#将字符串转换成列表
def str_to_list(query_ips_str):
    query_ips_list = query_ips_str.split(',')
    return query_ips_list

#将查询的结果写到excel文件中
def write_into_excel(i, query_ip, sec_level, is_malicious, confidence_level, location, judgments):
    #length 查询IP列表的长度
    #sec_level 风险等级
    #is_malicious 是否恶意IP
    #confidence_level 可信度
    #judgments 威胁类型
    #location IP归属地
    #将查询结果记录在excel表中
    file = "file_path"
    wb1 = load_workbook(filename=file)
    ws1 = wb1['Sheet1']
    ws1["A{}".format(i)].value = query_ip
    ws1["B{}".format(i)].value = sec_level
    #如果是高风险IP就标红
    if ws1["B{}".format(i)].value == "high":
        font = Font(bold=True, color='9c0006')
        ws1.cell(row=i, column=2, value="high").font = font
    ws1["C{}".format(i)].value = is_malicious
    ws1["D{}".format(i)].value = confidence_level
    ws1["E{}".format(i)].value = judgments
    ws1["F{}".format(i)].value = location
    wb1.save(filename=file)

#通过接口查询IP相关信息
def get_ip_info(query_ips_list):
    length = len(query_ips_list)
    for i in range(length):
        query_ip = query_ips_list[i]
        query = {
          "apikey":"Your apiKey",
          "resource": query_ip
        }
        response = requests.request("GET", url, params=query)
        get_result = response.json()
        #查风险等级
        sec_level = get_result['data']['{}'.format(query_ip)]['severity']
        #查是否恶意IP
        is_malicious = get_result['data']['{}'.format(query_ip)]['is_malicious']
        #查可信度
        confidence_level = get_result['data']['{}'.format(query_ip)]['confidence_level']
        #查IP归属国家
        country = get_result['data']['{}'.format(query_ip)]['basic']['location']['country']
        #查IP归属省份
        province = get_result['data']['{}'.format(query_ip)]['basic']['location']['province']
        #查IP归属城市
        city = get_result['data']['{}'.format(query_ip)]['basic']['location']['city']
        #将IP归属的国家、省份、城市合并成一个字符串
        location = country + '-' + province + '-' + city
        #查威胁类型
        judgments = get_result['data']['{}'.format(query_ip)]['judgments']
        judgments = str(judgments)
        location = str(location)
        #调用写excel函数将查询结果写到excel表格中
        write_into_excel(i+2, query_ip, sec_level, is_malicious, confidence_level, location, judgments)

if __name__ == '__main__':
    query_ips_str = input("请输入需要查询的IP(1.1.1.1,2.2.2.2): ")
    query_ips_list = str_to_list(query_ips_str)
    get_ip_info(query_ips_list)

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
微步社区查询接口是一个基于Python开发的接口,可以通过该接口来获取微步社区中的相关信息。 通过Python的requests库可以发送HTTP请求到微步社区查询接口的URL,并传入需要查询的参数,例如IP地址、域名、URL等。接口会返回与请求相关的信息,例如该IP地址或域名是否被微步识别为恶意或可疑的信息,以及相关的威胁情报、风险评级等。 使用接口的步骤大致如下: 1. 首先,引入requests库并导入所需模块; 2. 指定微步社区查询接口的URL,并将所需查询参数作为请求的参数; 3. 发送HTTP请求,并获取返回的数据; 4. 对返回的数据进行解析,提取所需的信息; 5. 对数据进行必要的处理和展示。 例如,我们可以通过该接口查询一个IP地址的信息,首先构造请求URL,然后发送GET请求,获取返回信息,并解析出IP的威胁情报和风险评级等数据。 ```python import requests def query_threat_info(ip): url = f"https://api.weibeiapi.com/微步社区查询接口URL?ip={ip}" response = requests.get(url) data = response.json() if response.status_code == 200: threat_info = data["threat_info"] risk_level = data["risk_level"] print(f"IP地址 {ip} 的威胁情报为:{threat_info}") print(f"IP地址 {ip} 的风险评级为:{risk_level}") else: print("查询失败,请检查IP地址是否正确。") # 调用示例 query_threat_info("192.168.1.1") ``` 注意,上述代码中的微步社区查询接口URL是示意,并非真实可用的URL,实际使用时需要替换为正确的URL。 总之,微步社区查询接口提供了方便的方式来获取微步社区中的相关信息,通过Python可以快速构建查询工具来实现调用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

見贤思齊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值