Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ashenblade/tpcon

CLI for Tp-Link routers
https://github.com/ashenblade/tpcon

cli csharp fsharp network router

Last synced: 2 months ago
JSON representation

CLI for Tp-Link routers

Awesome Lists containing this project

README

        

# TpCon

**tpcon** - CLI утилита для управления роутерами TpLink

В реализации используется парсинг HTML страницы и имитация HTTP запросов


## Зависимости

Для запуска приложения необходимо иметь .NET Core 6 Runtime

## Установка

### Из исходных файлов

1. Запусить из корня проекта

```shell
cd src/TpLinkConsole.Console
dotnet publish -c Release -o tpcon
```

2. Скопировать созданные файлы из папки `tpcon` в папку,
из которой планируется запускать приложение.
В примере, папка `software`

```shell
cp tpcon ~/software -r
```

## Команды

### Поддерживаемые команды

#### health

Проверить подключение к роутеру

Печатает:

- `Подключение: False` - нет подключения
- `Подключение: True` - есть подкючение

#### refresh

Перезагрузить роутер.
Перезагрузка нужна для применения некоторых команд.
Например, после изменения пароля: `wlan password "P@ssw0rd"`

#### wlan

- **wlan status**

Получить информацию о статусе беспроводной сети Wi-Fi:
ssid, безопасность, питание

- **wlan enable**

Включить Wi-Fi

- **wlan disable**

Выключить Wi-Fi

- **wlan security**
- **wlan security none** - выключить защиту
- **wlan security personal** - установить тип безопасности WPA/WPA2 Personal
- Аргументы
- *--password* - установить пароль
- *--encryption* - шифрование. Поддерживаемые типы: "tkip", "aes", "auto" (по умолчанию)
- *--version* - тип WPA. Поддерживаемые типы: "wpa", "wpa2", "auto" (по умолчанию)
- *--group-key-update-interval* - период обновления группового ключа. Должен быть либо 0 (по умолчанию), либо
больше 30
- **wlan security enterprise** - установить тип безопасности WPA/WPA2 Enterprise
- Аргументы
- *--radius-password* - пароль RADIUS сервера
- *--radius-port* - порт RADIUS сервера. По умолчанию - 1812
- *--radius-ip* - IP адрес RADIUS сервера
- *--encryption* - шифрование. Поддерживаемые типы: "tkip", "aes", "auto" (по умолчанию)
- *--version* - тип защиты. Поддерживаемые типы: "wpa", "wpa2", "auto" (по умолчанию)
- *--group-key-update-interval* - период обновления группового ключа. Должен быть либо 0 (по умолчанию), либо
больше 30
- **wlan security wep** - установить защиту WEP
- Аргументы
- *--auth-type* - тип аутентификации. Поддерживаемые значения: "shared-key", "open-system", "auto" (по умолчанию)
- *--key-format* - формат ключа. Поддерживаемые значения: "ascii", "hex" (по умолчанию)
- *--key{number}* - значение ключа с номером number. Например, для ключа 1 - `--key1`
- *--length{number}* - длина ключа с номером number. Поддерживаемые значения: ("bit64", "64", "64bit"), ("bit128"
, "
128", "128bit"), ("bit152", "152", "152bit"), "disabled" (по умолчанию). В скобках указаны эквивалентные
значения
Общее число поддерживаемых ключей - 4 (1, 2, 3, 4)
- *--selected* - номер ключа, который будет использоваться. Обязателен. Должен указывать на созданный с
помощью `--key{number}` ключ

- **wlan ssid {*new ssid*}**

Установить новый Wi-Fi SSID (название Wi-Fi)

Пример: `wlan ssid "Some New SSID"`

#### lan

- **lan status**

Показать информацию о локальной сети: локальный адрес роутера, маска подсети, MAC адрес роутера

- **lan ip {*new-ip*}**

Поставить новый локальный IP адрес роутера.
IP адрес указать в виде 4 десятичный чисел разделенных точкой.

Пример: `lan ip 192.168.0.4`

- **lan mask**

Установить маску подсети. Маска указывается в виде IP адреса

Пример: `lan mask 255.255.240.0`

### Общие опции

- **--router-address "*router local ip address*"**

IP адрес роутера для подключения.

По умолчанию: 192.168.0.1

- *--router-username "*admin username*"*

Имя администратора роутера.
То имя, которое вводишь при входе на страницу управления роутером.

По умолчанию: admin

- *--router-password "*admin password*"*

Пароль администратора роутера.
Пароль, который вводишь при входе на страницу управления роутером.

По умолчанию: admin

- --output "*output style*"

Тип форматирования используемый при выводе.

Поддерживаемые форматы:

- table - табличный вывод. По умолчанию
- json - в формате JSON
- xml - в формате XML
- plain - в формате ключ-значение

При выборе `plain` можно указать разделитель:

- --delimiter - строка разделителя. По умолчанию - ": "

Примеры:

- `--output table`
- `--output plain --delimiter " - "`

### Описания команд

Для получения описания команд указать аргумент **--help**

```shell
~$ tpcon lan --help

Команда:
lan
Описание:

status - Получить статус локальной сети
ip - Установить новый локальный адрес роутера. IP адрес задается в виде 4 чисел в диапазоне 0-255, разделенных точками. Пример: 192.168.0.1
mask - Изменить маску сети локальной сети. Маска задается в виде Wildcard. Например: 255.255.240.0
```

### ВНИМАНИЕ

Команды были опробованы для [TpLink TLWR741ND](https://www.tp-link.com/ru/home-networking/wifi-router/tl-wr741nd/).
Другие версии могут не поддерживаться, нарушить работу роутера и сломать его.
Используйте это приложение на свой страх и риск.