Example #1
0
     if ($js['Type'] == 'NewTunnel') {
         if ($js['Payload']['Error'] != null) {
             ConsoleOut('隧道建立失败:' . $js['Payload']['Error']);
             sleep(30);
         } else {
             ConsoleOut('隧道建立成功:' . $js['Payload']['Url']);
         }
     }
 }
 //远程代理连接
 if ($sockinfo['type'] == 2) {
     //未连接本地
     if ($sockinfo['linkstate'] == 1) {
         if ($js['Type'] == 'StartProxy') {
             $loacladdr = getloacladdr($Tunnels, $js['Payload']['Url']);
             $newsock = connectlocal($loacladdr['lhost'], $loacladdr['lport']);
             if ($newsock) {
                 $socklist[] = array('sock' => $newsock, 'linkstate' => 0, 'type' => 3, 'tosock' => $sock);
                 //把本地连接覆盖上去
                 $sockinfo['tosock'] = $newsock;
                 $sockinfo['linkstate'] = 2;
             } else {
                 $body = '<!DOCTYPE html><html><head><meta charset="utf-8"><title>Web服务错误</title><meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><style>html,body{height:100%%}body{margin:0;padding:0;width:100%%;display:table;font-weight:100;font-family:"Microsoft YaHei",Arial,Helvetica,sans-serif}.container{text-align:center;display:table-cell;vertical-align:middle}.content{border:1px solid #ebccd1;text-align:center;display:inline-block;background-color:#f2dede;color:#a94442;padding:30px}.title{font-size:18px}.copyright{margin-top:30px;text-align:right;color:#000}</style></head><body><div class="container"><div class="content"><div class="title">隧道 %s 无效<br>无法连接到<strong>%s</strong>. 此端口尚未提供Web服务</div></div></div></body></html>';
                 $html = sprintf($body, $js['Payload']['Url'], $loacladdr['lhost'] . ':' . $loacladdr['lport']);
                 $header = "HTTP/1.0 502 Bad Gateway" . "\r\n";
                 $header .= "Content-Type: text/html" . "\r\n";
                 $header .= "Content-Length: %d" . "\r\n";
                 $header .= "\r\n" . "%s";
                 $buf = sprintf($header, strlen($html), $html);
                 sendbuf($sock, $buf);
             }
Example #2
0
         $ClientId = $js['Payload']['ClientId'];
         $pingtime = time();
         sendpack($sock, Ping());
     }
     if ($js['Type'] == 'NewTunnel') {
         $Tunnels[$js['Payload']['Url']] = $js['Payload'];
         ConsoleOut('隧道建立成功:' . $js['Payload']['Url']);
     }
 }
 //远程代理连接
 if ($sockinfo['type'] == 2) {
     //未连接本地
     if ($sockinfo['linkstate'] == 1) {
         if ($js['Type'] == 'StartProxy') {
             $loacladdr = getloacladdr($Tunnels, $js['Payload']['Url']);
             $newsock = connectlocal($loacladdr[0], $loacladdr[1]);
             if ($newsock) {
                 $socklist[] = array('sock' => $newsock, 'linkstate' => 0, 'type' => 3, 'tosock' => $sock);
                 //把本地连接覆盖上去
                 $sockinfo['tosock'] = $newsock;
                 $sockinfo['linkstate'] = 2;
             } else {
                 $body = '<!DOCTYPE html><html><head><meta charset="utf-8"><title>Web服务错误</title><meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><style>html,body{height:100%%}body{margin:0;padding:0;width:100%%;display:table;font-weight:100;font-family:"Microsoft YaHei",Arial,Helvetica,sans-serif}.container{text-align:center;display:table-cell;vertical-align:middle}.content{border:1px solid #ebccd1;text-align:center;display:inline-block;background-color:#f2dede;color:#a94442;padding:30px}.title{font-size:18px}.copyright{margin-top:30px;text-align:right;color:#000}</style></head><body><div class="container"><div class="content"><div class="title">隧道 %s 无效<br>无法连接到<strong>%s</strong>. 此端口尚未提供Web服务</div></div></div></body></html>';
                 $html = sprintf($body, $js['Payload']['Url'], $loacladdr[0] . ':' . $loacladdr[1]);
                 $header = "HTTP/1.0 502 Bad Gateway" . "\r\n";
                 $header .= "Content-Type: text/html" . "\r\n";
                 $header .= "Content-Length: %d" . "\r\n";
                 $header .= "\r\n" . "%s";
                 $buf = sprintf($header, strlen($html), $html);
                 sendbuf($sock, $buf);
             }