Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 22, 2014 17:24:18

ALF
Зарегистрирован: 2013-09-24
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте+ передача данных

Доброго времени суток!

Есть необходимость отправлять с сайта СМС (для этого необходима авторизация, заполнение полей и нажатие на Send). Все это было реализовано в (win) так: исходный код страницы был модифицирован и хранился на ПК, при открытии этого html файла автоматически отсылалось сообщение (посредством javascript).

Сейчас все перенесли на FreeBSD, соответственно необходимо получить тот же результат, но уже из консоли. В данный момент я остановился на авторизации:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import urllib, urllib2, cookielib
request = urllib2.Request("http://192.168.155.21/")
request.add_header("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
urllib2.install_opener(opener)
params = urllib.urlencode(dict(j_username='admin', j_password='admin'))
print urllib.urlopen('http://192.168.155.21/', params)
я получаю весьма интересный результат, меня снова просят ввести пароль, хотя я передал его с params:

Enter username for Please Login at 192.168.155.21: admin
Warning (from warnings module):
  File "C:\Python27\lib\getpass.py", line 92
    return fallback_getpass(prompt, stream)
GetPassWarning: Can not control echo on the terminal.
Warning: Password input may be echoed.
Enter password for admin in Please Login at 192.168.155.21: admin
<addinfourl at 35365312 whose fp = <socket._fileobject object at 0x021B24F0>>

Подскажите что делать и куда копать для решения общей задачи

Отредактировано ALF (Апрель 23, 2014 09:08:57)

Офлайн

#2 Апрель 22, 2014 23:39:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Авторизация на сайте+ передача данных

ALF
# -*- coding: UTF-8 -*-
#!/usr/bin/env python
неправильный порядок строк

ALF
Есть необходимость отправлять с сайта СМС (для этого необходима авторизация, заполнение полей и нажатие на Send). Все это было реализовано в (win) так: исходный код страницы был модифицирован и хранился на ПК, при открытии этого html файла автоматически отсылалось сообщение (посредством javascript).
при нажатии Send что запускалось ?



Офлайн

#3 Апрель 23, 2014 09:42:58

ALF
Зарегистрирован: 2013-09-24
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте+ передача данных

Строки исправил, спасибо.
При нажатии Send отправлялось сообщение с сайта. Полагаю, что запускался некий java скрипт, который зашит в девайсе с сим картой, его я не рассматривал.

Если имелся в виду модифицированный html файл, то был написан java код, автоматически нажимающий на send при полной загрузке страницы.

Отредактировано ALF (Апрель 23, 2014 09:44:39)

Офлайн

#4 Апрель 23, 2014 22:17:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Авторизация на сайте+ передача данных

ALF
Полагаю, что запускался некий java скрипт, который зашит в девайсе с сим картой, его я не рассматривал.
нужно открыть исходник страницы и посмотреть



Офлайн

#5 Апрель 24, 2014 09:50:59

ALF
Зарегистрирован: 2013-09-24
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте+ передача данных

Посмотрел. Меня интересовала “Send” в 397 строке.
Думаю этот java отвечает за отправку.

<script lang="javascript">
function myescape(sStr){
		sStr=sStr.replace(/\n|\r/g," ");
}
function send_sms(frm){
	var poststr;
	if("LOGIN" == "LOGIN"){
	}
	else {
		window.alert("GSM LINE LOGOUT!");
		return false
	}
	if(frm["telnum"].value == ""){
		window.alert("cmd should not be empty!");
		return false
	}
	return true
}
</script>

Прикреплённый файлы:
attachment tools.html (17,2 KБ)

Офлайн

#6 Апрель 24, 2014 12:34:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Авторизация на сайте+ передача данных

вот фрагмент, который отвечает за отправку

<form action="http://192.168.155.21/default/en_US/sms_info.html" method="post" onsubmit="return send_sms(this);">
	<div>
	<table border="0" cellpadding="0" cellspacing="0" width="100%">
	<tbody><tr>
		<td colspan="3" class="title2" height="25">Send SMS</td>
	</tr>
	
	</tbody></table>
	</div>
	<!-- -->
	<div id="sms_send_tab_0_div" class="visable">
		<table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tbody><tr>
				<td width="120" height="25" class="title1" align="right">GSM Status:</td>
				<td width="160" class="text">LOGIN</td>
			</tr>
			<tr>
				<td width="120" height="25" class="title1" align="right">GSM Number:</td>
				<td width="160" class="text"></td>
			</tr>
		
		</tbody></table>
	</div>
<input type="hIdden" name="action" value="SMS">
<input type="hIdden" name="smskey" value="534e28b1">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
	<tbody><tr>
		<td class="title1" width="120" align="right" height="30">Phone Number:</td>
		<td align="center" width="220"><input type="text" name="telnum" class="edit" width="300" value="89035437884"></td>
		<td></td>
	</tr>
	<tr>
		<td class="title1" align="right" height="30">SMS Content:</td>
		<td align="center"><textarea name="smscontent" class="edit" rows="4">Warning! High temperature!</textarea></td>
		<td><input type="submit" name="send" class="button" id="justbutton" value="Send"></td>
	</tr>
</tbody></table>
</form>

открывается
http://192.168.155.21/default/en_US/sms_info.html

туда методом POST передаётся строка вида
smscontent=тырыпыры&telnum=12345&action=SMS&smskey=534e28b1

urllib.request.urlopen() можно использовать для посылки такого



Отредактировано py.user.next (Апрель 24, 2014 12:35:44)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version