Написал скрипт для отключения/включения wi-fi на роутере dir-300 из консоли. Работает просто, параметры up и down. Для большинства практического смысла не имеет, а я часто включаю, выключаю вай-фай ну и для практики с curl. В методе POST передается слишком много параметров, я часть порубил, часть оставил.
#!/bin/bash
#Адрес веб-интерфейса роутера
routerUrl=http://192.168.0.1
routerLogin=user
routerPassword=derpasswort
#ssid сети, вместо пробелов "+"
wlanSsid=halyava
curl -d "ACTION_POST=LOGIN" \
-d "FILECODE=" \
-d "VERIFICATION_CODE=" \
-d "LOGIN_USER="$routerLogin"" \
-d "LOGIN_PASSWD="$routerPassword"" \
-d "login=Log+In+" \
-d "VER_CODE=" \
""$routerUrl"/st_device.php" > /dev/null
case "$1" in
up)
curl -d "ACTION_POST=final" \
-d "f_enable=1" \
-d "f_wps_enable=1" \
-d "f_ssid="$wlanSsid"" \
-d "f_wlan_sch=0" \
-d "f_super_g=" \
-d "f_xr=" \
-d "f_txrate=0" \
-d "f_wmm_enable=0" \
-d "f_ap_hidden=0" \
-d "f_authentication=5" \
-d "f_cipher=2" \
-d "f_wpa_psk_type=1" \
-d "f_wpa_psk="$routerPassword"" \
"$routerUrl/bsc_wlan.php" > /dev/null;;
down)
curl -d "ACTION_POST=final" \
-d "f_enable=0" \
-d "f_wps_enable=1" \
-d "f_ssid="$wlanSsid"" \
-d "f_super_g=" \
-d "f_xr=" \
-d "f_txrate=0" \
-d "f_wmm_enable=0" \
-d "f_ap_hidden=0" \
-d "f_authentication=5" \
-d "f_cipher=2" \
-d "f_wpa_psk_type=1" \
-d "f_wpa_psk="$routerPassword"" \
"$routerUrl/bsc_wlan.php" > /dev/null;;
*)
echo "Please use up/down script options for managing wlan in DIR-300";;
esac
> chmod +X routerwlan
> routerwlan down