Измените внутренний сервер маршрутизатора, чтобы иметь собственную страницу управления маршрутизатором. - PullRequest
0 голосов
/ 08 июня 2019

Итак, сегодня я пришел к этому странному вопросу. В последнее время у меня было много проблем с беспроводным соединением, и я хотел быстрый способ включить / отключить беспроводное соединение, а также заблокировать свой MAC-адрес и посмотреть, сколько устройств подключено к моей сети и т. Д.

Поэтому я подумал, что смогу создать своего рода API-интерфейс моего маршрутизатора и просто создать собственное приложение для доступа к нему (я уже сделал это, эмулируя HTTP-связь между клиентом и сервером маршрутизатора). Но это кажется настолько непрактичным, что я должен со стороны сервера читать ответы HTML с внутреннего сервера в маршрутизаторе.

Тогда я просто подумал, что должен быть способ доступа к информации маршрутизатора напрямую, как это делает внутренний сервер, и даже изменить веб-сайт внутри.

Полагаю, это зависит от роутера, но я просто хочу спросить идеи / предложения о том, как лучше всего это сделать, и есть ли какой-нибудь протокол или лучший способ, который я мог бы пропустить.

Я знаю, это сложный вопрос, и, возможно, он не должен быть в стеке потока, но я думал, что у любого из вас будет знание.

    public String login() {
        String routerUri = "http://192.168.1.1/login-login.cgi";
        RestTemplate restTemplateLogin = new RestTemplate();
        HttpHeaders headersLogin = new HttpHeaders();
        headersLogin.add("Cookie", "_TESTCOOKIESUPPORT=1");
        headersLogin.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

        MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
        map.add("sessionKey", "blablvablalbalbla");
        map.add("pass", "");

        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map,
                headersLogin);
        ResponseEntity<String> response = restTemplateLogin.postForEntity(routerUri, request, String.class);
        String loginCookie = response.getHeaders().getFirst("Set-Cookie").split(";")[0].split("=")[1];

        return loginCookie;
    }

как вы можете видеть, сейчас я обращаюсь к этому CGI, запрашивая у маршрутизатора их напрямую, было бы неплохо посмотреть, что внутри.

Маршрутизатор: Mitrastar gpt-2541GNAC

Большое спасибо за помощь!

...