Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Баланс оператора сотовой связи возможностями Bash / 4 сообщений из 4, страница 1 из 1
09.11.2014, 20:16
    #38800014
Асланали
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Баланс оператора сотовой связи возможностями Bash
Здравствуйте друзья!
Необходимо отслеживать баланс сотовых операторов(Билайн, МТС, МегаФон) для своевременного уведомления абонентов
об остатке менеджером компании.
Реализовать такое решил возможностями BASH (OS Debian 6).
Для отслеживания HTTP трафика использую программу Fiddler4 (На Windows 7).
Есть наработка для МТС.
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
#!/bin/sh -e
USERNAME='arsen' ; T1="root"
if [ "$T1" = "$USERNAME" ]; then
echo  'Please do not run this script as root' ; exit
fi

# Input: LOGIN, PASSWORD
# Output: account balance
# e.g. LOGIN=9107637702 PASS=xxxxxx mts

request()
{
        wget \
                --load-cookies /tmp/cookies.txt \
                --save-cookies /tmp/cookies.txt \
                --keep-session-cookies \
                --quiet \
                $@
}

request -O /tmp/1.html https://ihelper.ug.mts.ru/SelfCarePda/Security.mvc/LogOn?returnLink=https://ihelper.ug.ru/SelfCarePda/Home.mvc
request -O /tmp/2.html --post-data="username=МойНомерМТС&password=МойПароль" https://ihelper.ug.mts.ru/SelfCarePda/Security.mvc/LogOn?returnLink=https%3A%2F%2Fihelper.ug.mts.ru%2FSelfCarePda%2FHome$

sed -ne '/<br\/>Баланс:/ { s,.*>\([0-9.]*\)</.*$,\1,; p }' </tmp/2.html
#elinks  /tmp/2.html


Данный скрипт работал при запуске на работе, а дома нет!
Также обнаружил в сети интересное решение написанное нашим земляком (спасибо ему за это).
Делаю как описано для МТС:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
#!/bin/sh

OLDPATH=$PATH; PATH=".:..:$(dirname $0):$PATH"; . _spmon_lib; PATH=$OLDPATH

# Input: LOGIN, PASSWORD
# Output: account balance

UA='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36'

request -O /tmp/1.html 'https://ihelper.ug.mts.ru/SelfCarePda/Security.mvc/LogOn'
request -O /tmp/2.html --post-data="username=Номер&password=Пароль" 'https://ihelper.ug.mts.ru/SelfCarePda/Security.mvc/LogOn'

#                         <br/>Баланс: <strong><strong>123.45</strong> руб.</strong>

sed -ne '/<br\/>Баланс:/ { s,.*>\([0-9.]*\)</.*$,\1,; p }' </tmp/2.html


Результата нет.
Вот с Билайном сложновато, они ведь сменили личный кабинет, у автора приводится в старом варианте.
Делаю так для Билайна:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
#!/bin/sh -e

OLDPATH=$PATH; PATH=".:..:$(dirname $0):$PATH"; . _spmon_lib; PATH=$OLDPATH

# Input: LOGIN, PASSWORD
# Output: account balance

request_curl()
{
        local add_arg=
        [ -z "$DEBUG" ] && add_arg=--silent || add_arg=--verbose
        curl \
                --user-agent "$UA" \
                --cookie "$COOKIE_FILE" \
                --cookie-jar "$COOKIE_FILE" \
                --location \
                $add_arg $@
}

request_curl -o /tmp/1.html https://my.beeline.ru/login.html
request_curl -o /tmp/2.html \
        --data "loginFormB2C%3AloginForm=loginFormB2C%3AloginForm&loginFormB2C%3AloginForm%3Alogin=МойНомер&loginFormB2C%3AloginForm%3Apassword=Пароль&loginFormB2C$
        https://my.beeline.ru/login.html
request_curl -o /tmp/3.html \
        --referer https://my.beeline.ru/login.html \
        Referer: https://my.beeline.ru/c/pre/index.html

#                                <td class="tabred">
#                                        123,45&nbsp;руб.&nbsp;<small class="gray">на&nbsp;12:34</small>
#                                </td>

iconv -f windows-1251 -t utf-8 /tmp/3.html | sed -ne '/руб./ { s/&nbsp;.*$//; s/^\s*//; s/,/./; p }'


Соответственно и тут промах, к сожалению.
Прошу помочь разобраться с этими двумя операторами.
Спасибо все ответившим!.
...
Рейтинг: 0 / 0
09.11.2014, 22:35
    #38800114
Асланали
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Баланс оператора сотовой связи возможностями Bash
Для МТС сделал так:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
#!/bin/sh -e
USERNAME='arsen' ; T1="root"
if [ "$T1" = "$USERNAME" ]; then
echo  'Please do not run this script as root' ; exit
fi

# Input: LOGIN, PASSWORD
# Output: account balance
# e.g. LOGIN=9596583576 PASS=xxxxxx mts

request()
{
        wget \
                --load-cookies /tmp/cookies.txt \
                --save-cookies /tmp/cookies.txt \
                --keep-session-cookies \
                --quiet \
                $@
}

#request -O /tmp/1.html https://ihelper.mts.ru/SELFCAREPDA/Security.mvc/LogOn
request -O /tmp/balans.html --post-data="username=лог&password=пар" https://ihelper.ug.mts.ru/SelfCarePda/Security.mvc/LogOn?returnLink=http%3A%2F%2Fihelp$

sed -ne '/<br\/>Баланс:/ { s,.*>\([0-9.]*\)</.*$,\1,; p }' </tmp/balans.html


Вроде отобразился баланс(mts.jpg).

Сделал для Билайна:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
#!/bin/sh -e

OLDPATH=$PATH; PATH=".:..:$(dirname $0):$PATH"; . _spmon_lib; PATH=$OLDPATH

# Input: LOGIN, PASSWORD
# Output: account balance

request_curl()
{
        local add_arg=
        [ -z "$DEBUG" ] && add_arg=--silent || add_arg=--verbose
        curl \
                --user-agent "$UA" \
                --cookie "$COOKIE_FILE" \
                --cookie-jar "$COOKIE_FILE" \
                --location \
                $add_arg $@
}

#request_curl -o /tmp/1.html https://my.beeline.ru/login.html
request_curl -o /tmp/2.html \
        --data "loginFormB2C%3AloginForm=loginFormB2C%3AloginForm&loginFormB2C%3AloginForm%3Alogin=ном&loginFormB2C%3AloginForm%3Apassword=пар&loginFormB2C$
        https://my.beeline.ru/login.html
#request_curl -o /tmp/3.html \
#       --referer https://my.beeline.ru/login.html \
#       https://my.beeline.ru/c/pre/index.html

#iconv -f windows-1251 -t utf-8 $TM/3.html | sed -ne /руб./ { s/&nbsp;.*$//; s/^\s*//; s/,/./; p }'


На сайт вошел. Вижу номер и прочее, не вижу баланса (-2). beeline.jpg
...
Рейтинг: 0 / 0
09.11.2014, 22:37
    #38800117
Асланали
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Баланс оператора сотовой связи возможностями Bash
Да и потом каким регулярным выражением вытащить номер и баланс.
У МТС выходит все четко.
...
Рейтинг: 0 / 0
09.11.2014, 22:54
    #38800124
Асланали
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Баланс оператора сотовой связи возможностями Bash
Вот мой файл _spmon_lib
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Баланс оператора сотовой связи возможностями Bash / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]