Die Anwendungssteuerungs-ID von FortiGate wird auf fortiguard.com veröffentlicht, jedoch nicht in der Liste angezeigt. .. .. Es sollte einige Leute geben, die eine Liste mit CSV wollen, beispielsweise beim Laden von Informationen in den Flow Collector.
Sie können die Liste mit dem folgenden Befehl von der CLI abrufen.
config application list
edit default
config entries
edit 1
# set application ?
Wenn Sie? Eingeben, wird es ausgegeben, aber da die unterstützte Anwendung je nach Gerät unterschiedlich ist, möchte ich nach Möglichkeit alle Daten von fortiguard.com abrufen.
Ich habe mein eigenes Tool mit Python erstellt.
pip install beautifulsoup4 lxml requests
import requests
import csv
import re
import time
from bs4 import BeautifulSoup
s = requests.Session()
url = 'https://fortiguard.com/appcontrol'
get_url_info = s.get(url)
bs4Obj = BeautifulSoup(get_url_info.text, 'lxml')
result = bs4Obj.find('div', class_='sidebar-content')
appids = int(re.findall('[0-9]+', result.find('a').get_text().replace(',', ''))[0])
perPage = int(len(bs4Obj.find_all('div', class_='title')))
if appids % perPage == 0:
pages = int(appids // perPage)
else:
pages = int(appids // perPage) + 1
i = 1
datas = []
url_base = 'https://fortiguard.com/appcontrol?deepapp=&page='
while pages + 1 > i:
print('page:', i, '/', pages)
url = url_base + str(i)
try:
get_url_info = s.get(url)
bs4Obj = BeautifulSoup(get_url_info.text, 'lxml')
app_list = bs4Obj.find_all('div', class_='title')
if len(app_list) == 0:
continue
except Exception as e:
print(e)
time.sleep(1)
continue
j = 0
while True:
try:
app_name = str(app_list[j].find('a').get_text())
app_num = int(re.findall('[0-9]+', app_list[j].find('a').get('href'))[0])
data = [app_num, app_name]
datas.append(data)
j += 1
except:
break
i += 1
print('result:', len(datas), '/', appids)
with open('appid.csv', 'w') as file:
writer = csv.writer(file, lineterminator='\n')
writer.writerows(sorted(datas))
Ich habe den gleichen Code auf Github hochgeladen. https://github.com/Connie-Wild/FortiOS_AppControlID Na dann!