LinuxForum.Fans
Тема

Скрипт включения/выключения Wifi на роутере (Bash+curl)

Автор: boot2k3 5 сообщений 1418 просмотров
14.03.2015 12:08 · отредактировано #417698

Помогите пожалуйста подправить скрипт для включения/выключения wifi на роутере
Что-то никак не могу понять как это правильно сделать
Проблема с частью [нужно заменить]
[нужно заменить] вычисляется по формуле MD5("" + cnt) + MD5(Username.value + cnt ) + MD5(MD5(Password.value) + cnt)
где username=root, password=12345678 (для примера)
cnt нужно получить с сайта из функции
var cnt = GetRandCnt();

text
#!/bin/bash
# Enable or disable WiFi module on HUAWEI EchoLife HG8245 GPON Terminal
# Cookie password is a md5-encoded password field value
echo HUAWEI EchoLife HG8245T GPON Terminal WiFi management tool
URL=http://192.168.100.1
Wifi(){
        curl "$URL/login.cgi"  --cookie "Cookie=tid=[нужно заменить]:Language:english:id=1" -d "x.X_HW_WlanEnable=0" --header "DHT:1" #--silent -o "/dev/null" && echo -n " . " || echo Login failed
        curl "$URL/html/network/set.cgi?x=InternetGatewayDevice.LANDevice.1&RequestFile=html/network/wlan.asp"  --cookie "Cookie=UserName:[нужно заменить]:Language:english:id=1" -d "x.X_HW_WlanEnable=$1" -e "$URL/html/network/wlan.asp" --header "DHT:1" --silent -o "/dev/null" && echo ". " || echo Wifi failed
}
case "$1" in 
        start)
                Wifi 1
        ;;
        stop)
                Wifi 0
        ;;
        *)
                echo "Usage: ./wifi start|stop"
                exit 1
        ;;
esac
exit 0

часть шифровальную написал, осталось как-то получить параметр cnt и соеденить все это как-то вместе

text
cnt="" #как-то это надо получить
user="root"
cnt_md5=$(echo -n $cnt | md5sum | cut -c 1-32)
us_cnt_md5=$(echo -n $user$cnt | md5sum | cut -c 1-32)
PW_cnt="$(echo -n "12345678" | md5sum | cut -c 1-32)$cnt"
PW_cnt_md5=$(echo -n "$PW_cnt" | md5sum | cut -c 1-32)
md5=$cnt_md5$us_cnt_md5$PW_cnt_md5
Cookie2="tid="$md5
15.03.2015 05:30 #417839
"boot2k3" написал:
[нужно заменить] вычисляется по формуле MD5("" + cnt) + MD5(Username.value + cnt ) + MD5(MD5(Password.value) + cnt)

плюсик это конкатенация?

text
#!/bin/bash

declare MD5

function md5 { MD5=$(md5sum < <(echo "$1")) MD5="${MD5/ */}" }

CNT="cnt" USERNAME="root" PASSWORD="1234567890"

md5 "$CNT" A="$MD5" md5 "${USERNAME}${CNT}" A="${A}${MD5}" md5 "$PASSWORD" md5 "${MD5}${CNT}" A="${A}${MD5}"

echo "'$A'"

15.03.2015 11:20 #417851

Да, конкатенация
только

text
echo -n "$1"

иначе значение неправильное получается

16.03.2015 11:49 #418032
"boot2k3" написал:
echo -n "$1"

да, это я упустил.

16.03.2015 23:57 #418217

А по curl -у не подскажите какую-нибудь хорошую ссылку на примеры с этими кукизами?
А то задача подвисла на правильном получении переменной и ответа от сервера

Войдите или зарегистрируйтесь, чтобы ответить.