powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Баланс оператора сотовой связи возможностями Bash
4 сообщений из 4, страница 1 из 1
Баланс оператора сотовой связи возможностями Bash
    #38800014
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте друзья!
Необходимо отслеживать баланс сотовых операторов(Билайн, МТС, МегаФон) для своевременного уведомления абонентов
об остатке менеджером компании.
Реализовать такое решил возможностями 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
Баланс оператора сотовой связи возможностями Bash
    #38800114
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для МТС сделал так:
Код: 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
Баланс оператора сотовой связи возможностями Bash
    #38800117
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и потом каким регулярным выражением вытащить номер и баланс.
У МТС выходит все четко.
...
Рейтинг: 0 / 0
Баланс оператора сотовой связи возможностями Bash
    #38800124
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мой файл _spmon_lib
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Баланс оператора сотовой связи возможностями Bash
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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