Задача найти ip адреса подключенные к роутеру ftp серверов. Как

это можно сделать?
На питоне я открыл сайт роутера и получил список подключенных устройств имитируя клики на сайте:
def get_LocalIP(self):
browser = webdriver.Firefox()
wait = WebDriverWait(browser, 500)
browser.get('http://192.168.31.1/cgi-bin/luci/web')
field = browser.find_element_by_id('password')
wait.until(EC.visibility_of_element_located((By.ID, "password")))
field.send_keys('VideoServer')
browser.find_element_by_id('btnRtSubmit').click()
wait.until(EC.visibility_of_element_located((By.ID, "routermodel")))
current_URL = browser.current_url
current_URL = current_URL.split('/')
XiaomiApiUrlRequest = 'http://192.168.31.1/cgi-bin/luci/' + current_URL[5] + '/api/misystem/devicelist'
r = requests.get(XiaomiApiUrlRequest)
jsonRequest = json.loads(r.text)
jsonRequest = jsonRequest['list']
browser.quit()
HostList = []
for i, val in enumerate(jsonRequest):
ip = val['ip'][0]['ip']
try:
f1 = iFTP(ip)
HostList.append({"ip": ip, "id": val['mac']})
except KeyError:
pass
except ConnectionRefusedError:
pass
# print("No ftp: ", ip)
except TimeoutError:
pass
return HostList

Есть готовый функционал в Qt или как еще можно найти сервера?

5 ответов

10 просмотров

что ты такое интересное пишешь?

Мгер-Карапетян Автор вопроса
Макс Воробьев
что ты такое интересное пишешь?

Проект по скачиванию видео с регистраторов. Регистраторов может быть много и они то появляются в сети то исчезают

Там же api с json, зачем целый браузер юзать для парсинга?

Мгер-Карапетян Автор вопроса
Bril
Там же api с json, зачем целый браузер юзать для п...

с веб технологиями я на Вы. Где прочитать? что ввести в строку поиска?

Мгер Карапетян
с веб технологиями я на Вы. Где прочитать? что вве...

Ну да, завернуть GET/POST запросы api в QNetworkAccessManager вместо питоновского requests

Похожие вопросы

Обсуждают сегодня

Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
А как заставить поиск искать? Есть такая формочка <select class="form-control custom-select" name="brand_id" data-handler="onGetBrands"></select>
Денис Александрович
5
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
с помощью чего можно бота добавить как админа в чат? (условно в боте есть кнопка, нажатие на которую приводит тебя к выбору чата и выдаче прав боту)
ηє νєямσяє
5
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Добрый день, подскажите как правильно сделать filter в backend-e. Есть модель (товар) у который связь belongsToMany (компания), компаний > 4k, поэтому выборку типа ->all(); н...
Max Dubovsky
7
Или зателаешь в Шелл контейнера ?
Vladimir 
3
А цены чем оправданы?
Lencore
7
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Карта сайта