Отправка смс

Discussion in 'PHP' started by .::Sim[B]ioZ::., 31 Jul 2007.

  1. .::Sim[B]ioZ::.

    Joined:
    30 Jul 2007
    Messages:
    3
    Likes Received:
    3
    Reputations:
    -23
    Итак выложу СВОЮ!!!!!!!!!!!!!!!!! отправку смс

    а точнее скрипт для нее

    Читайте
    Code:
    <?
    
    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;
    }
    ?>
    
    <?
    if (SendSMS(connect(GetAddress(Connect('mrim.mail.ru:443'))), 'Sim[B]ioZ отправит с ящеГа', 'пароль к ящику', 'номер телефона в формате 7XXXXXXXXXX', 'Текст сообщения')==true)
    {
    echo "Sim[B]ioZ отправил";
    }
    else
    {
    echo "Sim[B]ioZ нихуя не отправил";
    }
    ?>