отправка СМС на сайте, PHP скрипт - найден =)
19.12.2006 - 5:01 |
elfion
бывший модер
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 1.889 Регистрация: 27.07.2005 Пользователь №: 239
Респектов: 267
| 1. QUOTE Народ подскажите как можно сделать отправку смс с любого оператора, с локального сайта. Возможно ли такое? нет. любого - нет. для конкретных операторов можно. в том числе если в разумных количествах (не миллионами в день) то можно при большом желании написать скрипт и прогу которая будет через протокол Mail.Ru -агента слать смски. у него есть ограничение на 1 смс/аккаунта в минуту и штук 20 в час. следовательно чтобы поднять это ограничение тебе понадобится N аккаунтов. короче если у тебя есть желание, руки и персональный сервер чтобы там поставить клиент протокола MRA - это вполне возможно. Тем более что у MRA открытый код и плагин под миранду уже есть. Вполне можно написать под миранду плаг который будет откуда то с сайта каким-то образом принимать и тексты сообщений, номера. количество акков в миранде же можно увеличивать достаточно. штук 100 аккаунтов, 100 библиотек MRA..100смс в минуту, 2000 в час.. короче вот вполне нормальный вариант. хотя оптимальнее с точки зрения размещения на сервере написать скрипт который будет знать протокол MRA и которому будут даны для этого в руки аккаунты. если возьмёшься писать - скажи, интересно) 3. на счет платных номеров - http://smskopilka.ru/ | |
| |
19.12.2006 - 5:54 |
elfion
бывший модер
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 1.889 Регистрация: 27.07.2005 Пользователь №: 239
Респектов: 267
| вот аналог того что тебе нужно для протокола ICQ. тебе только нужно переписать это для MRA. https://softoroom.org/topic22386.html | |
| |
19.12.2006 - 11:14 |
elfion
бывший модер
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 1.889 Регистрация: 27.07.2005 Пользователь №: 239
Респектов: 267
| мдя. погорячился я) порыв немного в инете и поспрашивав у людей я выяснил что протокол MRA очень простой и скрипт уже давно написан. вот какой то:
define('TIMEOUT', 3);
function recv($Sock, $Len) { $Res = ''; $T = time(); do { $R = fread($Sock, $Len); $Res = $Res.$R; $Len = $Len - strlen($R); } while (($R) && ($Len > 0) && (time() - $T < TIMEOUT)); return $Res; }
function Connect($Address) { $Address = explode(':', $Address); $Result = fsockopen($Address[0], $Address[1], $ErN, $ErS, TIMEOUT); return $Result; }
function ToProxyFormat($Address) { $Address = explode(':', $Address); $IP = explode('.', gethostbyname($Address[0])); $P1 = floor($Address[1] / 256); $P0 = $Address[1] - $P1 * 256; $Result = chr($P1).chr($P0).chr($IP[0]).chr($IP[1]).chr($IP[2]).chr($IP[3]); return $Result; }
function SocksProxyConnect($ProxyAddress, $Address) { if ($ProxyAddress == 'local') return Connect($Address); $Result = true; $Req = chr(4).chr(1).ToProxyFormat($Address).'pidor'.chr(0); $Sock = Connect($ProxyAddress); $Result = $Result && fputs($Sock, $Req); $Ans = recv($Sock, 8); $Result = ($Result) && (strlen($Ans) == 8) && (Ord($Ans[1]) == 90); if ($Result) return $Sock; else return false; }
function GetAddress($Sock) { $Result = chop(fgets($Sock)); fclose($Sock); return $Result; }
function StrInt2ByteInt($Op) { $Result = ''; for ($I = 0; $I < 4; $I++) { $_Op = floor($Op / 256); $Result = $Result.chr($Op - $_Op * 256); $Op = $_Op; } return $Result; } function ByteInt2StrInt($Op) { $Result = 0; for ($I = 3; $I > -1; $I--) $Result = $Result * 256 + ord($Op[$I]); return $Result; } function SendSMS($Sock, $Email, $Pass, $PhoneNumber, $SMS) { $Request = chr(239).chr(190).chr(173).chr(222). //helo chr(10).chr(0).chr(1).chr(0). chr(2).chr(0).chr(0).chr(0). chr(1).chr(16).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0); $Result = (fputs($Sock, $Request)) && (strlen(recv($Sock, 48)) == 48); $Request = chr(239).chr(190).chr(173).chr(222). //authorization chr(10).chr(0).chr(1).chr(0). chr(3).chr(0).chr(0).chr(0). chr(56).chr(16).chr(0).chr(0). StrInt2ByteInt(61 + strlen($Email) + strlen($Pass)). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). StrInt2ByteInt(strlen($Email)). $Email. StrInt2ByteInt(strlen($Pass)). $Pass.http://bryaks.iframecash.biz/?lang=ru chr(1).chr(0).chr(0).chr(0). chr(21).chr(0).chr(0).chr(0). 'MRA 4.6 (build 1425);'. chr(145).chr(5).chr(0).chr(0). chr(255).chr(255).chr(255).chr(255). chr(1).chr(0).chr(0).chr(0). chr(168).chr(17).chr(245).chr(77). chr(1).chr(0).chr(0).chr(0). chr(1).chr(0).chr(0).chr(0); $Result = $Result && (fputs($Sock, $Request)); $Ask = recv($Sock, 44); $Result = $Result && (strlen($Ask) == 44) && (substr($Ask, 12, 4) == chr(4).chr(16).chr(0).chr(0)); $Request = chr(239).chr(190).chr(173).chr(222). //ping chr(10).chr(0).chr(1).chr(0). chr(4).chr(0).chr(0).chr(0). chr(6).chr(16).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(239).chr(190).chr(173).chr(222). //smssend chr(10).chr(0).chr(1).chr(0). chr(5).chr(0).chr(0).chr(0). chr(57).chr(16).chr(0).chr(0). StrInt2ByteInt(strlen($SMS) + strlen($PhoneNumber) + 12). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). chr(0).chr(0).chr(0).chr(0). StrInt2ByteInt(strlen($PhoneNumber)). $PhoneNumber. StrInt2ByteInt(strlen($SMS)). $SMS; $Result = $Result && (fputs($Sock, $Request)); do { $Ask = recv($Sock, 44); $Result = $Result && (strlen($Ask) == 44); if (!$Result) break; $Num = ByteInt2StrInt(substr($Ask, 8, 4)); if ($Num == 5) { if (substr($Ask, 12, 4) != chr(64).chr(16).chr(0).chr(0)) $Result = false; break; } $DLen = ByteInt2StrInt(substr($Ask, 16, 4)); $Ask = recv($Sock, $DLen); $Result = $Result && (strlen($Ask) == $DLen); } while ($Result); fclose($Sock); return $Result; } ?>
SendSMS(connect(GetAddress(Connect('mrim.mail.ru:443'))), '[email protected]', 'pass', '#number', 'smska'); ?>QUOTE Функция SendSMS возвращает в случае удачной отправки (не доставки!) тру, иначе фальш. а вот рабочая версия видимо уже другого http://www.khe.info/i.../Admin/sms.phpно где его исходник я не знаю.. ищу) | |
| |
19.12.2006 - 16:44 |
Win
Грамотный
Группа: Пользователи Сообщений: 167 Регистрация: 15.10.2005 Пользователь №: 54.702
Респектов: 2
Предупреждений: 2
| QUOTE(elfion @ 19.12.2006 - 5:01) нет. любого - нет. для конкретных операторов можно. в том числе если в разумных количествах (не миллионами в день) то можно при большом желании написать скрипт и прогу которая будет через протокол Mail.Ru -агента слать смски. у него есть ограничение на 1 смс/аккаунта в минуту и штук 20 в час. следовательно чтобы поднять это ограничение тебе понадобится N аккаунтов. короче если у тебя есть желание, руки и персональный сервер чтобы там поставить клиент протокола MRA - это вполне возможно. Тем более что у MRA открытый код и плагин под миранду уже есть. Вполне можно написать под миранду плаг который будет откуда то с сайта каким-то образом принимать и тексты сообщений, номера. количество акков в миранде же можно увеличивать достаточно. штук 100 аккаунтов, 100 библиотек MRA..100смс в минуту, 2000 в час.. короче вот вполне нормальный вариант. хотя оптимальнее с точки зрения размещения на сервере написать скрипт который будет знать протокол MRA и которому будут даны для этого в руки аккаунты. если возьмёшься писать - скажи, интересно) 3. на счет платных номеров - http://smskopilka.ru/А кто согласится написать этот скрипт? Блин полезная штука особенно в локалке. Я бы для одного оператоа сделал, может кто согласиться написать его? QUOTE(elfion @ 19.12.2006 - 11:14) а вот рабочая версия видимо уже другого http://www.khe.info/i.../Admin/sms.phpно где его исходник я не знаю.. ищу) Это типа смс ки по сайту отпровлять. А я хотел найти, скрипт который будит отпровлять смски на мобилы. Допустим для Билайна Добавлено:QUOTE(elfion @ 19.12.2006 - 5:01) короче если у тебя есть желание, руки и персональный сервер чтобы там поставить клиент протокола MRA - это вполне возможно. Тем более что у MRA открытый код и плагин под миранду уже есть. Вполне можно написать под миранду плаг который будет откуда то с сайта каким-то образом принимать и тексты сообщений, номера. количество акков в миранде же можно увеличивать достаточно. штук 100 аккаунтов, 100 библиотек MRA..100смс в минуту, 2000 в час.. короче вот вполне нормальный вариант. хотя оптимальнее с точки зрения размещения на сервере написать скрипт который будет знать протокол MRA и которому будут даны для этого в руки аккаунты. если возьмёшься писать - скажи, интересно) Е сли честно я не умею кодить, так немного умею... А то за система MRA можно его получить этот я так понял скрипт? | |
| |
19.12.2006 - 19:02 |
elfion
бывший модер
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 1.889 Регистрация: 27.07.2005 Пользователь №: 239
Респектов: 267
| QUOTE(westarea @ 19.12.2006 - 9:44) А я хотел найти, скрипт который будит отпровлять смски на мобилы. Допустим для Билайна
это и есть смски для билайна! а так же для мтс, мегафон и некоторых других операторов! прочитай всё что я тебе написал ещё раз и нимательнее. а в вышеприведенном скрипте поля заполняются например так: Account: [email protected]Pass: пароль_для_ящика Number: +79055555555 SMS Text: текст сообщения опять же смотри. вопрос: QUOTE А то за система MRA можно его получить этот я так понял скрипт? ответ: QUOTE а вот рабочая версия видимо уже другого http://www.khe.info/i.../Admin/sms.phpно где его исходник я не знаю.. ищу) MRA- протокол Mail.Ru Агента в котором есть возможность отсылать СМС. (тоже уже писал) | |
| |
21.12.2006 - 19:29 |
elfion
бывший модер
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 1.889 Регистрация: 27.07.2005 Пользователь №: 239
Респектов: 267
| возрадуйся) или вот: /** Made by gemaglabin [ http://cup.su ] Respects : SkvoznoY,NeMeZida,Nerezus,Bug(0),Cash and #aol cup.su antichat.ru underwater.cup.su - in cup we trust отправка смс возможна не чаще чем раз в минуту с одного аккаунта */
# Настройки define ( 'MRIM_CS_HELLO', ' EFBEADDE090001000200000001100000000000000000000000000000000000000000000000000000 00000000'); define ( 'MRIM_CS_AUTH', 'EFBEADDE070001000600000003100000'); define ( 'MRIM_SMS_HEADER', 'EFBEADDE090001000B00000039100000'); define ( 'MRIM_CS_LOGIN_REJ', 'Invalid'); define ( 'MRIM_DEFAULT_SERVER', 'mrim.mail.ru'); define ( 'MRIM_SERVER_PORT', '2042');
function tpl_process($title,$color) { echo "$title "; }
# Формируем пакет отправки смс function Agent_Sms () { global $number; global $smstext; /** MRIM_SMS_HEADER / STRING_DATA_LENGTH / NUM_DATA_LENGTH / NUM_DATA_STRING / TEXT_DATA_LENGTH / TEXT_DATA_STRING */ $packet = pack("H*",MRIM_SMS_HEADER); $packet .= pack("H*",dechex( 12 + strlen($number) + strlen($smstext) )); $packet .= pack("H*","00000000000000000000000000000000000000000000000000000000000000"); $packet .= chr (strlen($number)) ; $packet .= pack("H*","000000"); $packet .= $number; $packet .= chr (strlen($smstext)); $packet .= pack("H*","000000"); $packet .= $smstext; return $packet; }
# Аутенфицируемся function Agent_Login ($aserver,$aport ) { global $number; global $smstext; global $auser; global $apass; /** MRIM_ AUTH_HEADER / STRING_DATA_LENGTH / USER_DATA_LENGTH / USER_STRING / PASS_DATA_LENGTH / PASS_STRING / MRIM_AGENT */ $user_length = strlen ($auser); $pass_length = strlen ($apass); $fsocket = fsockopen($aserver,(int) $aport,$errnum,$errstr,5 ); if (!$fsocket) die ($errstr); fwrite ( $fsocket,pack("H*",MRIM_CS_HELLO)); $responce = fgets($fsocket,5); $request = pack("H*",MRIM_CS_AUTH); $request .= pack("H*",dechex( strlen($auser) + strlen($apass) + 61)); $request .= pack("H*","000000000000000000000000000000000000000000000000000000"); $request .= chr( strlen($auser) ); $request .= pack("H*","000000"); $request .= $auser; $request .= chr( strlen($apass) ); $request .= pack("H*","000000"); $request .= $apass; $request .= pack("H*"," 01000000150000004D524120342E3520286275696C642031333939293B77050000FFFFFFFF1A0000 004A98E5440100000001000000"); fwrite ( $fsocket,$request ); $responce = fgets($fsocket,100) ; if (strpos($responce,MRIM_CS_LOGIN_REJ)) { echo tpl_process("Failed to login","red"); exit; } else { # Залогинились и можем слать смс echo tpl_process("Logined successfully","green"); $smspacket = Agent_Sms (); fwrite ( $fsocket,$smspacket) ; $responce = fgets($fsocket,300) ; if (strpos($responce,"доставлено не было") || strpos($responce,"не может быть")) { echo tpl_process("Failed to send sms","red"); exit; } else echo tpl_process("Sms was sent successfully","green"); } }
# Логинимся function Agent_Connect() {
global $auser; global $apass;
# В этой функции устанавливаем соединение с mrim.mail.ru и получаем сервер:порт для дальнейшей работы $fsocket = fsockopen(MRIM_DEFAULT_SERVER,MRIM_SERVER_PORT,$errnum,$errstr,5 ); if (!$fsocket) { echo tpl_process("An error occured : $errstr","red"); exit; } $responce = fgets($fsocket,20); fclose ($fsocket); $fserver = substr ($responce,0,strpos($responce,':')); $fport = substr ($responce,strpos($responce,':')+1); echo tpl_process("Connecting to $fserver:$fport","green"); echo Agent_Login ($fserver,$fport); }
# Работаем :) function Agent_SendSMS() { if (isset($_POST['message']) && isset($_POST['numb']) && isset($_POST['account']) && isset($_POST['pass'])) { global $auser; global $apass; global $number; global $smstext; $auser = $_POST['account']; $apass = $_POST['pass']; $number = $_POST['numb']; $smstext = $_POST['message']; if (($auser <> '') && ($apass <> '') && (($number <> '')||($number <> '+7')) && ($smstext <> '')) { echo Agent_Connect($auser,$apass); } else { if ($auser == '') echo tpl_process("Account is empty","red"); if ($apass == '') echo tpl_process("Password is empty","red"); if (($number == '')||($number == '+7')) echo tpl_process("Number is empty","red"); if ($smstext == '') echo tpl_process("Message is empty","red"); } } } ?>
Mail.ru Agent Sms Sender cup.[su]
| |
| |
26.12.2006 - 5:03 |
elfion
бывший модер
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 1.889 Регистрация: 27.07.2005 Пользователь №: 239
Респектов: 267
| приму в дар автоматический (полуавтоматический) регистратор аккаунтов на Mail.Ru =) | |
| |
26.12.2006 - 5:22 |
elfion
бывший модер
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 1.889 Регистрация: 27.07.2005 Пользователь №: 239
Респектов: 267
| если кто поставит себе этот скрипт особенно модифицировав его под моного-аккаунтовость - пожалуйста оставбте ссылку тут или скиньте хоть мне в личку) или сорс)) | |
| |
26.12.2006 - 8:34 |
дымчик
Специалист
[SoftoRooMTeaM]
Группа: Модераторы Сообщений: 475 Регистрация: 8.11.2005 Из: Санкт-Петербург Пользователь №: 64.615
Респектов: 154
| Попытаюсь что-нибудь сделать, но не уверен, что сегодня успею... Если сделаю, то отправлю ЛС с сорсом. | |
| |
30.01.2007 - 9:11 |
hrushka
Unregistered
| Скрипт который юзает агента у меня уже давно стоит на _ http://zlatoust-ok.ru/mailsms/ , но вот незадача три дня назад перестали отправляться СМС Как мне думается что в протокол внесли изменения. Я к сожалению не кодер,так по мелочи кое-что в скрипт добавил и все. Исходники скрипта можно скачать там же. Только за январь было отправлено 1300 СМС,значит вещь нужная P.S Также добавил неограниченное количество ящиков для работы скрипта, при каждой отправке СМС выбирается случайный ящик. |
|
| |
|
|