Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | |
[Win32] Как отправить SMS через инет? 03.12.01 04:55 Число просмотров: 1213
Автор: BXS Статус: Незарегистрированный пользователь
|
> меня просто это убивает все об этом говорят, но толком 0 > звонишь своему оператору и спрашиваешь > например, киевстар > для тел номера xxxxxxxxxx > мэил такой xxxxxxxxxx@2sms.kyivstar.net > а для твоего позвони и узнай
Очень просто!
1. Найди сайт оператора который тебе нужен...
2. глянь внутрь формы (изучи просто html формат для отсылки. может придеца некоторые поля выкинуть а некоторые генерить самому (типа браузер, печенье итд))
3. пиши простейшего tcp клиента и спихивай на сайт форму...
4. можешь даже принимать ответ и проверь на код возврата (обычно на пагебудет написано доставлено или нет)
Недостаток такого метода - каждый раз как на сайте изменица протокол передачи вероятно придеца переписывать и клиента.
На этом простейшем принципе основаны все проги этого класса...
Я как то тоже хостил один такой проект...
|
<programming>
|
[Win32] Как отправить SMS через инет? 02.12.01 19:44
Автор: Паша Федорцов Статус: Незарегистрированный пользователь
|
Как отправить SMS через инет? Каким серваком и протоколом пользоваться, может кто подскажет?
|
|
[Win32] Как отправить SMS через инет? 02.12.01 22:38
Автор: OverKill <::.0v3rK1LL.::> Статус: Member
|
> Как отправить SMS через инет? Каким серваком и протоколом > пользоваться, может кто подскажет? Советую поискать эту тему в ранее задававшихся вопросах.
А вообще, ася умеет смс рассылать.
|
| |
[Win32] Как отправить SMS через инет? 03.12.01 04:22
Автор: lukash Статус: Незарегистрированный пользователь
|
меня просто это убивает все об этом говорят, но толком 0
звонишь своему оператору и спрашиваешь
например, киевстар
для тел номера xxxxxxxxxx
мэил такой xxxxxxxxxx@2sms.kyivstar.net
а для твоего позвони и узнай
|
| | |
[Win32] Как отправить SMS через инет? 03.12.01 04:55
Автор: BXS Статус: Незарегистрированный пользователь
|
> меня просто это убивает все об этом говорят, но толком 0 > звонишь своему оператору и спрашиваешь > например, киевстар > для тел номера xxxxxxxxxx > мэил такой xxxxxxxxxx@2sms.kyivstar.net > а для твоего позвони и узнай
Очень просто!
1. Найди сайт оператора который тебе нужен...
2. глянь внутрь формы (изучи просто html формат для отсылки. может придеца некоторые поля выкинуть а некоторые генерить самому (типа браузер, печенье итд))
3. пиши простейшего tcp клиента и спихивай на сайт форму...
4. можешь даже принимать ответ и проверь на код возврата (обычно на пагебудет написано доставлено или нет)
Недостаток такого метода - каждый раз как на сайте изменица протокол передачи вероятно придеца переписывать и клиента.
На этом простейшем принципе основаны все проги этого класса...
Я как то тоже хостил один такой проект...
|
| | | |
BXS !!!!!! 03.12.01 21:06
Автор: Паша Федорцов Статус: Незарегистрированный пользователь
|
BXS отсавь свое мыло плз.... !!!! или напиши подробнее на disappearpf@mail.ru
возног гарат !!!!! *-)) beer and "><<((@)>"
|
| | | | |
идея + исходник !!!!!! 03.12.01 22:02
Автор: BXS Статус: Незарегистрированный пользователь
|
вот я тебе выдрал часть исходника для подобных затей.
(практически это было реализовано в первых версиях P-SMS клиента. Правда проект я уже закрыл но прогу можно найти по сети...)
идея тут следующая:
Задача - послать мессагу на трубу МТС.
Скрипт на МТСе требует на входе: номера абонента, тело сообщения, время и дату. Замечу - что время и дата - существенные показатели... Мессага может не отсылаца если она просрочена итд... Если ты будешь сам вводить время и дату - то исходник которыя я приведу внизу можно будет упростить (выкинуть часть загрузки времени и даты). Предположим что ты хочешь чтобы прога полностью за тебя формировала запросы к МТС. Для реализации тебе нужно просто сэмитировать работу браузера:
1. Запросить страничку с формой
2. извлечь из нее дату и время
3. сформировать свой заголовок
4. скинуть ответ скрипту
*. отсылать можно как напрямую так и с халявных проксей (все это показано внизу)
Итак, приступаем:
// некоторые переменные может не нужны а некоторых может не хватать тут - просто я не особо церемонился... если нету - значит объяви недостающие глобальными... остальное очевидно...
#define MTS_SERVER "www.mts.ru"
#define MTS_URL "http:\/\/www.mts.ru/sms"
#define MTS_PATH "/sms/sent.html"
in_addr MTS_IP;
SOCKET MsgSock;
PHOSTENT phe;
char Request[3000], Temp_Request[2000],RecvBuffer[520]="\0", *Ptr, *Ptr2 *MTS_BUFFER, Proxy[255], IP[16], Temp_Path[64];
BYTE Return;
WORD PORT;
int Offset=0, Result, count, Action_Len, Session_Value_Len;
struct send_properties{
char Id[12]; // тут будет телефон
char Message[500]; // мессага
char SendAfter[20];
char Repeat[5];
char Transliterate[15];
char Hour[3];
char Minute[3];
char Day[3];
char Month[3];
char Year[5];
}Send_Properties;
// заполняем адрес
if((phe=gethostbyname(MTS_SERVER))!=0){
memcpy(&MTS_IP,phe->h_addr, phe->h_length);
MTS_IP_FOUND=TRUE;
}
// заполняем поле прокси если она вааще нужна
if(PROXY_ON ==1){
wsprintf(Proxy," http://%s",MTS_SERVER);
wsprintf(IP,"%s",RegData.Proxy_Ip);
PORT = RegData.Proxy_Port;
}
else{
wsprintf(Proxy," ");
wsprintf(IP,"%s",inet_ntoa(MTS_IP));
PORT = SERVER_PORT;
}
wsprintf(Temp_Request,"GET%s%s HTTP/1.0",Proxy,MTS_PATH); // тут уже в Temp_Request есть весь HTTP GET заголовок. Тепреь добавим разной стандартной дряни
GenerateHeader(Request, Temp_Request,MTS_URL,IP); // тело этой ф-ции находица в самом низу
if((Result=Transmit_Packet(IP, PORT, Request, TRUE, MTS_BUFFER, MTS_BUFFER_SIZE))<0){
LocalFree(MTS_BUFFER);
Return=1;
goto Exit_Thread;
} // эта функция просто по открытому сокету трансферит данные. возвращает -1 если ошибка и размер трансчеренных байтов если все зашибись.
// На этом этапе мы получили стандартную страничку с сервера (ту которую ты получаешь заходя через браузер). теперь надо оттуда выдрать время и дату (по умолчанию они присылаюца сервером в скрытых полях формы)
Ptr=MTS_BUFFER;
for(count=0;count!=5;count++){
if((Ptr=strstr(Ptr,"selected value="))==0){
LocalFree(MTS_BUFFER);
Return=1;
goto Exit_Thread;
}
Ptr+=16;
Offset=0;
UNTIL_QUOTE:
if(Offset>5){
LocalFree(MTS_BUFFER);
Return=1;
goto Exit_Thread;
}
if(Ptr[Offset]=='"')
goto GET_NEXT_FIELD;
MTS_TIME[count].Item[Offset]=Ptr[Offset];
Offset++;
goto UNTIL_QUOTE;
GET_NEXT_FIELD:
Offset=0;
}
wsprintf(Send_Properties.Hour,"%s",MTS_TIME[0].Item);
wsprintf(Send_Properties.Minute,"%s",MTS_TIME[1].Item);
wsprintf(Send_Properties.Day,"%s",MTS_TIME[2].Item);
wsprintf(Send_Properties.Month,"%s",MTS_TIME[3].Item);
wsprintf(Send_Properties.Year,"%s",MTS_TIME[4].Item);
LocalFree(MTS_BUFFER);
if(PROXY_ON ==1){
wsprintf(Proxy," http://%s",MTS_SERVER);
wsprintf(IP,"%s",RegData.Proxy_Ip);
PORT = RegData.Proxy_Port;
}
else{
wsprintf(Proxy," ");
wsprintf(IP,"%s",inet_ntoa(MTS_IP));
PORT = SERVER_PORT;
}
// формируем уже настоящий запрос с сообщением wsprintf(Temp_Request,"GET%s%s?Posted=1&To=%s&Msg=%s&count=%d&SMSHour=%s&SMSMinute=%s&SMSDay=%s&SMSMonth=%s&SMSYear=%s HTTP/1.0",
Proxy,MTS_PATH, Send_Properties.Id,Send_Properties.Message, lstrlen(буфер с твоей мессагой),Send_Properties.Hour,Send_Properties.Minute,Send_Properties.Day,Send_Properties.Month,Send_Properties.Year);
GenerateHeader(Request, Temp_Request,MTS_URL,IP);
if((Result=Transmit_Packet(IP, PORT, Request, FALSE, 0, 0))<0){
Return=1;
goto Exit_Thread;
}
Return=0;
goto Exit_Thread;
// отослано :))
// далее можно получить ответ от скрипта и проверить на наличие фразы "сообщение отправлено" - success и failure иначе... сам решишь стоит ли...
-------------------
int GenerateHeader(char *Output, char *Input, char *Referer, char *Ip){
//эта ф-цтя гененит заголовки для закоса под разные браузеры... извращайся тут как хочешь.. в примере токо 2 case
switch(rand()%8){
case 1:
wsprintf(Output,"%s\r\nUser-Agent: Opera/4.02 (Windows 98; U) [en]\r\n\
Host: %s\r\n\
Referer: %s\r\n\
Accept: text/html, image/png, image/jpeg, image/gif, image/x-xbitmap, image/vnd.wap.wbmp;level=0, */*\r\n\
Accept-Language: en\r\n\
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\r\n\
Connection: Keep-Alive\r\n\r\n",Input,Ip,Referer);
break;
case 2:
wsprintf(Output,"%s\r\n\
User-Agent: Mozilla/4.0 (Windows 4.10;US) Opera 3.60 [en]\r\n\
Accept: image/gif, image/x-xbitmap, image/jpeg, image/png, */*\r\n\
Referer: %s\r\n\
Host: %s\r\n\r\n",Input,Referer,Ip);
break;
case ДО_ХРЕНА:
итд.
// Оговорюсь сразу - это старый исходник, вероятно МТС поменяла пути к нужным файлам или переименовала - поэтому может не будет работать.... но это просто техническая проблема которая решаеца за 30- минут.
Юзай на здоровье!
|
| | | | | |
Но а если мелодии или логотипы? 04.12.01 07:06
Автор: Паша Федорцов Статус: Незарегистрированный пользователь
|
Спасибо большое! Но так я смогу послать текстовую SMS а мне нужно послать на трубу мелодию. Я так понимаю, что сервак MTC формирует SMS как текстовую и таким образом ничего не выйдет, или я ошибаюсь?
|
| | | | | | |
Но а если мелодии или логотипы? 04.12.01 08:56
Автор: BXS Статус: Незарегистрированный пользователь
|
А с сервака по ходу и незя сливать картинки (( (по крайней мере у МТС). К тому же я описал кустарный способ для мессаг...
ася похоже совершенно иначе коннектица....
|
|
|