day & night

отправка СМС на сайте, PHP скрипт - найден =)
Дата обновления: , перейти к новому сообщению
#1
Win



Грамотный
***

Группа: Пользователи
Сообщений: 167
Регистрация: 15.10.2005
Пользователь №: 54.702


Респектов: 2
-----X----


Предупреждений: 2


Народ подскажите как можно сделать отправку смс с любого оператора, с локального сайта. Возможно ли такое?

Типа с оф сайта мтмс, или билайна.

И как сделать через мобилы продовать мелодии, картинки?

Типа отправь смс на такой номер, с таким текстом, и получи брезент.
User is offline
Go topGo end

Ответов(10 - 19)
19.12.2006 - 5:01
#11
elfion



бывший модер
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 1.889
Регистрация: 27.07.2005
Пользователь №: 239


Респектов: 267
-----XX---




1.
QUOTE
Народ подскажите как можно сделать отправку смс с любого оператора, с локального сайта. Возможно ли такое?
нет. любого - нет. для конкретных операторов можно. в том числе если в разумных количествах (не миллионами в день) то можно при большом желании написать скрипт и прогу которая будет через протокол Mail.Ru -агента слать смски. у него есть ограничение на 1 смс/аккаунта в минуту и штук 20 в час. следовательно чтобы поднять это ограничение тебе понадобится N аккаунтов.
короче если у тебя есть желание, руки и персональный сервер чтобы там поставить клиент протокола MRA - это вполне возможно. Тем более что у MRA открытый код и плагин под миранду уже есть. Вполне можно написать под миранду плаг который будет откуда то с сайта каким-то образом принимать и тексты сообщений, номера. количество акков в миранде же можно увеличивать достаточно. штук 100 аккаунтов, 100 библиотек MRA..100смс в минуту, 2000 в час.. короче вот вполне нормальный вариант.
хотя оптимальнее с точки зрения размещения на сервере написать скрипт который будет знать протокол MRA и которому будут даны для этого в руки аккаунты.
если возьмёшься писать - скажи, интересно)

3. на счет платных номеров - http://smskopilka.ru/
User is offline
Go topGo end
19.12.2006 - 5:54
#12
elfion



бывший модер
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 1.889
Регистрация: 27.07.2005
Пользователь №: 239


Респектов: 267
-----XX---




вот аналог того что тебе нужно для протокола ICQ. тебе только нужно переписать это для MRA.
https://softoroom.org/topic22386.html
User is offline
Go topGo end
19.12.2006 - 11:14
#13
elfion



бывший модер
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 1.889
Регистрация: 27.07.2005
Пользователь №: 239


Респектов: 267
-----XX---




мдя. погорячился я) порыв немного в инете и поспрашивав у людей я выяснил что протокол 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
но где его исходник я не знаю.. ищу)
User is offline
Go topGo end
19.12.2006 - 16:44
#14
Win



Грамотный
***

Группа: Пользователи
Сообщений: 167
Регистрация: 15.10.2005
Пользователь №: 54.702


Респектов: 2
-----X----


Предупреждений: 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 можно его получить этот я так понял скрипт?
User is offline
Go topGo end
19.12.2006 - 19:02
#15
elfion



бывший модер
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 1.889
Регистрация: 27.07.2005
Пользователь №: 239


Респектов: 267
-----XX---




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 Агента в котором есть возможность отсылать СМС. (тоже уже писал)

User is offline
Go topGo end
21.12.2006 - 19:29
#16
elfion



бывший модер
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 1.889
Регистрация: 27.07.2005
Пользователь №: 239


Респектов: 267
-----XX---




возрадуйся)
это отправка SMS через MRA
http://www.sendspace.com/file/q1m4zf


или вот:

/** 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");

}
}
}
?>

http://www.w3.org/TR/....dtd">

Mail.ru Agent Sms Sender     cup.[su]















User is offline
Go topGo end
26.12.2006 - 5:03
#17
elfion



бывший модер
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 1.889
Регистрация: 27.07.2005
Пользователь №: 239


Респектов: 267
-----XX---




приму в дар автоматический (полуавтоматический) регистратор аккаунтов на Mail.Ru =)
User is offline
Go topGo end
26.12.2006 - 5:22
#18
elfion



бывший модер
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 1.889
Регистрация: 27.07.2005
Пользователь №: 239


Респектов: 267
-----XX---




если кто поставит себе этот скрипт особенно модифицировав его под моного-аккаунтовость - пожалуйста оставбте ссылку тут или скиньте хоть мне в личку) или сорс))
User is offline
Go topGo end
26.12.2006 - 8:34
#19
дымчик



Специалист
[SoftoRooMTeaM] Group Icon

Группа: Модераторы
Сообщений: 475
Регистрация: 8.11.2005
Из: Санкт-Петербург
Пользователь №: 64.615


Респектов: 154
-----X----




Попытаюсь что-нибудь сделать, но не уверен, что сегодня успею... Если сделаю, то отправлю ЛС с сорсом.
User is offline
Go topGo end
icon13 30.01.2007 - 9:11
#20
hrushka



Unregistered














Скрипт который юзает агента у меня уже давно стоит на _http://zlatoust-ok.ru/mailsms/ , но вот незадача три дня назад перестали отправляться СМС sad.gif Как мне думается что в протокол внесли изменения. Я к сожалению не кодер,так по мелочи кое-что в скрипт добавил и все. Исходники скрипта можно скачать там же.
Только за январь было отправлено 1300 СМС,значит вещь нужная cool.gif
P.S Также добавил неограниченное количество ящиков для работы скрипта, при каждой отправке СМС выбирается случайный ящик.
Go topGo end

Topic Options
Сейчас: 28.03.2024 - 18:00
Мобильная версия | Lite версия