majuna/app/terraform/block/bridge_dnsc.py

36 lines
1.2 KiB
Python

from io import BytesIO
from typing import BinaryIO
import openpyxl
import requests
from app.terraform.block.bridge import BlockBridgeAutomation
DOWNLOAD_URL = "https://dnsc.ro/vezi/document/situatie-site-uri-cu-activitate-in-contextul-crizei-ucraina-rusia-plus" \
"-adrese-ip-specifice-utilizate-in-atacuri-malware-detalii"
class BlockBridgeDnscAutomation(BlockBridgeAutomation):
short_name = "block_bridge_dnsc"
description = "Import the Romanian National Directorate for Cybersecurity blocklist"
frequency = 60 * 24
_content: BinaryIO
def fetch(self) -> None:
response = requests.get(DOWNLOAD_URL,
headers={"User-Agent": "Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) "
"Gecko/20100101 Firefox/10.0"},
timeout=60)
self._content = BytesIO(response.content)
def parse(self) -> None:
wb = openpyxl.open(self._content)
sheet = wb[wb.sheetnames[0]]
idx = 2
while True:
addr = sheet['B' + str(idx)].value
if not addr:
break
self.ips.append(addr)
idx += 1