Мне нужен был способ автоматизировать экспорт названий устройств и IP-адресов для использования в других автоматизированных процессах. Я знаю, что можно использовать графический интерфейс The Dude и правой кнопкой мыши экспортировать, но мне нужно было что-то, что может запускаться по расписанию. #
# NOCwiz.com представляет The Dude Network Device Repository
#
# dudendr.py позволяет использовать Mikrotik's The Dude
# в качестве NDR. Этот скрипт будет извлекать IP-адреса и названия устройств
# из веб-интерфейса The Dude.
#
# Требуются модули Python Requests и BeautifulSoup
#
# В этом примере просто жёстко закодируем все параметры
username = 'admin'
password = 'supersecret'
dudeaddr = '10.0.19.59'
filename = 'dudendr.csv'
import requests, urllib
from BeautifulSoup import BeautifulSoup
devicename = []
deviceurl = []
deviceip = []
# Создаём параметры для отправки в форму логина.
payload = {
'process': 'login',
'page': 'start',
'password': password,
'user': username
}
# Используем urllib для кодирования полезной нагрузки формы, затем отправляем
params = urllib.urlencode(payload)
page = 'http://'+dudeaddr+'/dude/main.html'
resp = requests.post(page, params=payload)
# Сохраняем cookie, так как теперь мы авторизованы
cookies = resp.cookies
# Получаем страницу со всеми устройствами
page = 'http://'+dudeaddr+'/dude/main.html?page=devices'
resp = requests.get(page,cookies=cookies)
# Обрабатываем результаты страницы
# Собираем названия устройств и URL-адреса
soup = BeautifulSoup(resp.text)
links = soup.findAll('a')
for a in links:
if 'device_info' in a['href'] :
devicename.append(a.string)
deviceurl.append(a['href'])
# Обрабатываем все URL-адреса устройств, чтобы получить IP-адреса
for url in deviceurl:
page = 'http://'+dudeaddr+url
resp = requests.get(page,cookies=cookies)
soup = BeautifulSoup(resp.text)
result = soup.find(attrs={"name":"address"})
deviceip.append(result['value'])
# Сохраняем результаты в CSV-файл
file = open(filename, "w")
for x in range(0,len(deviceurl)):
file.write(devicename[x]+","+deviceip[x]+"\n")
file.close()
# NOCwiz.com представляет The Dude Network Device Repository
#
# dudendr.py позволяет использовать Mikrotik's The Dude
# в качестве NDR. Этот скрипт будет извлекать IP-адреса и названия устройств
# из веб-интерфейса The Dude.
#
# Требуются модули Python Requests и BeautifulSoup
#
# В этом примере просто жёстко закодируем все параметры
username = 'admin'
password = 'supersecret'
dudeaddr = '10.0.19.59'
filename = 'dudendr.csv'
import requests, urllib
from BeautifulSoup import BeautifulSoup
devicename = []
deviceurl = []
deviceip = []
# Создаём параметры для отправки в форму логина.
payload = {
'process': 'login',
'page': 'start',
'password': password,
'user': username
}
# Используем urllib для кодирования полезной нагрузки формы, затем отправляем
params = urllib.urlencode(payload)
page = 'http://'+dudeaddr+'/dude/main.html'
resp = requests.post(page, params=payload)
# Сохраняем cookie, так как теперь мы авторизованы
cookies = resp.cookies
# Получаем страницу со всеми устройствами
page = 'http://'+dudeaddr+'/dude/main.html?page=devices'
resp = requests.get(page,cookies=cookies)
# Обрабатываем результаты страницы
# Собираем названия устройств и URL-адреса
soup = BeautifulSoup(resp.text)
links = soup.findAll('a')
for a in links:
if 'device_info' in a['href'] :
devicename.append(a.string)
deviceurl.append(a['href'])
# Обрабатываем все URL-адреса устройств, чтобы получить IP-адреса
for url in deviceurl:
page = 'http://'+dudeaddr+url
resp = requests.get(page,cookies=cookies)
soup = BeautifulSoup(resp.text)
result = soup.find(attrs={"name":"address"})
deviceip.append(result['value'])
# Сохраняем результаты в CSV-файл
file = open(filename, "w")
for x in range(0,len(deviceurl)):
file.write(devicename[x]+","+deviceip[x]+"\n")
file.close()
