深信服态势感知升级库下载
一、脚本介绍
1、背景介绍
因为项目上有深信服的安全设备、并且在内网无法直接连接互联网进行在线升级,必须使用离线升级模式,下载规则库升级,每月一更有点繁琐,所以写了这个b脚本,偷懒一下,不喜勿喷
2、下载列表
- STA库
- SIP库
二、脚本代码
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展示,因为我好像使用的微信登录的,如果用其他登录方式可能会不一样,但是复制粘贴上去都能用
正常登录,之后浏览器F12点击网络,然后刷新界面,把这个cookie复制进代码里面,如果还是不会就去看看其他教程