深信服态势感知升级库下载

深信服态势感知升级库下载

一、脚本介绍

1、背景介绍

因为项目上有深信服的安全设备、并且在内网无法直接连接互联网进行在线升级,必须使用离线升级模式,下载规则库升级,每月一更有点繁琐,所以写了这个b脚本,偷懒一下,不喜勿喷

2、下载列表

  • STA库

image-20250305151655573

  • SIP库

image-20250305151728091

二、脚本代码

1、代码展示

# -*- coding: UTF-8 -*-
"""
# @当前项目: python
# @当前脚本: 深信服
# @创建者: Sword
# @时间: 2025/03/03 16:22
# @脚本说明: 
"""
import os
import requests
import warnings
from urllib3.exceptions import InsecureRequestWarning

# 禁用 InsecureRequestWarning 警告
warnings.simplefilter('ignore', InsecureRequestWarning)

# 使用 requests.session() 复用连接
session = requests.session()

# 请求的 cookies 数据
cookies = {
    "xxx": "xxxxx",
    "xxxxx": "xxxxx",
    "xxxxx": "xxxxxxxx",
    "xxxxx": "xxxxxxxx",
    "xxxxx.xxxx.xxxx": "1",
    "xxxxxxxxxx": "xxxxx",
    "xxxxxxx": "xxxxxxxx"
}


def get_version(url):
    """获取最新版本的信息"""
    try:
        # 使用 session.get 请求获取数据
        version_json = session.get(url, cookies=cookies, verify=False).json()
        name_url_dict = {}

        # 取出 'name' 和 'url'
        for package in version_json['data'][0]['package']:
            name = package['name']
            url = package['url']
            name_url_dict[name] = url
        return name_url_dict
    except Exception as e:
        print(f"获取版本信息时发生错误: {e}")
        return {}


def get_document(url, name, folder_path):
    """下载文件到指定路径"""
    try:
        # 发送请求获取文件
        response = session.get(url, cookies=cookies, verify=False)

        if response.status_code == 200:
            # 检查文件夹是否存在,不存在则创建
            if not os.path.exists(folder_path):
                os.makedirs(folder_path)

            # 使用 os.path.join 生成文件路径,确保跨平台兼容
            file_path = os.path.join(folder_path, f"{name}.zip")

            # 写入文件
            with open(file_path, "wb") as file:
                for chunk in response.iter_content(chunk_size=8192):
                    file.write(chunk)

            print(f"文件 '{name}.zip' 已成功下载并保存到 '{file_path}'.")

        else:
            print(f"下载失败,状态码: {response.status_code}")

    except Exception as e:
        print(f"下载文件时发生错误: {e}")


def download_files(version_url, folder_path):
    """根据版本 URL 和文件夹路径下载文件"""
    name_url_dict = get_version(version_url)

    if name_url_dict:
        for name, url in name_url_dict.items():
            get_document(url, name, folder_path)
    else:
        print("没有获取到文件信息。")


if __name__ == '__main__':
    # 定义 STA 和 SIP 的版本 URL 和文件夹路径
    get_sta_version_url = "https://support.sangfor.com.cn/productSoftware/packageApi?category_id=176"
    get_sip_version_url = "https://support.sangfor.com.cn/productSoftware/packageApi?category_id=11"

    sta_folder_path = r"D:\desktop\深信服\态势感知STA库"
    sip_folder_path = r"D:\desktop\深信服\态势感知SIP库"

    # 下载 STA 文件
    download_files(get_sta_version_url, sta_folder_path)

    # 下载 SIP 文件
    download_files(get_sip_version_url, sip_folder_path)

2、脚本说明

如果需要其他的规则库升级的话可以按照代码中的products list进行添加也是可以的

需要自己登录添加Cookies,才能正常运行

3、cookie设置

正常cookie展示,因为我好像使用的微信登录的,如果用其他登录方式可能会不一样,但是复制粘贴上去都能用

image-20250305152406650

正常登录,之后浏览器F12点击网络,然后刷新界面,把这个cookie复制进代码里面,如果还是不会就去看看其他教程

image-20250305152841813

三、结果展示

1、运行展示

深信服

2、成果展示

image-20250305152138539

image-20250305152156644

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值