mysql 포트 열려있는 호스팅업체들이 어디어디있을까요? > 자유게시판

자유게시판

mysql 포트 열려있는 호스팅업체들이 어디어디있을까요? 정보

mysql 포트 열려있는 호스팅업체들이 어디어디있을까요?

본문

제가 JAVA로 그누보드 연동 회원정보 검색 수정 및 출력하는 프로그램을 만들고 있는대요..
대부분의 호스팅업체들이 mysql 포트를 막아놔서 만들어논놈이 쓸모가 없어지고 있네요..
http 터널링으로 mysql을 수정하는 프로그램들이 있긴 하던대..
자바 초보라 그런건 할줄도 모르고..
일단 Paran에서는 테스트 성공했는대.. 에휴..
다른 호스팅은 어디가..

아참..회원정보는 이름 연락처 메일 주소 사진 뭐 이런거만 받아올겁니다..
학원생 관리 뭐 이런 용도로 쓸거라..

아.. 그리고 Java 입니다 Java Script 아닙니다.
인스톨 프로그램으로 만들 예정입니다.

아.. 너무 허접해 보이네..^^;;




추천
0

댓글 3개

SQL Manager 에서 http 터널링 할때 사용하는 php 소스입니다.
거의 모든 호스팅 업체는 외부로 mysql을 안열어줍니다.

자바 <--> phpproxy.php <--> mysqld

참고하시라고 올려봅니다.


<?
header('Content-Type: application/octet-stream');

error_reporting(125);
$data = 'OK:';

function err( $error )
{
  die("err: $error");
}

function myerr()
{
  $e = mysql_error();
  mysql_free_result( mysql_query( 'ROLLBACK' ) );
  err( $e );
}

function pgerr( $err )
{
  $e = pg_last_error();
  if( $e == '' ) $e = $err;
  if( $e == '' ) $e = 'unknown pgsql error';
  pg_free_result( pg_query( 'ROLLBACK' ) );
  err( $e );
}


function dump( $val )
{
  global $data;
  $len = strlen($val);
  if( $len < 255 )
    $data .= chr($len);
  else
    $data .= "\xFF".pack('V',$len);
  $data .= $val;
  if( strlen($data) > 100000 ) {
    echo $data;
    $data = '';   
  }

}


array_key_exists('server',$_POST) and array_key_exists('host',$_POST) and array_key_exists('port',$_POST) and array_key_exists('user',$_POST) and array_key_exists('password',$_POST) and array_key_exists('dbname',$_POST) or err("mailformed request");

if( get_magic_quotes_gpc() )
  foreach( $_POST as $key => $value )
    $_POST[$key] = stripslashes($value);


$commit = array_key_exists('commit',$_POST);

if( $_POST['server'] == 'mysql' ) {

  $host = $_POST['host'];
  if( $_POST['port'] )
    $host .= ':'.$_POST['port'];
  $conn = mysql_connect($host,$_POST['user'],$_POST['password']) or myerr();
  if( $_POST['dbname'] != '' )
    mysql_select_db( $_POST['dbname'] ) or myerr();
  if( array_key_exists('charset',$_POST) && $_POST['charset'] != '' )
    mysql_query( 'SET NAMES \'' . $_POST['charset'] . '\'' ) or myerr();
  $result = FALSE;
  mysql_free_result( mysql_query( 'BEGIN' ) );
  for( $rn = 1; $rn < 1000; ++$rn ) {
    if( !array_key_exists( 'r'.$rn, $_POST ) )
      break;
    $data = 'OK:';
    $req = $_POST['r'.$rn];
    if( $req == 'connect' ) {
      dump( mysql_get_server_info() );
      dump( mysql_get_client_info() );
      dump( mysql_get_proto_info() );
      dump( mysql_get_host_info() );
    } else {
      $result = mysql_query($req) or myerr();
      if( $result === TRUE ) {
        dump( 0 );
        dump( mysql_affected_rows() );
      } else {
        $width = mysql_num_fields($result);
        $height = mysql_num_rows($result);
        dump($width);
        dump($height);
        for( $i = 0; $i < $width; ++$i ) {
          dump( mysql_field_name( $result, $i ) );
          $type = mysql_field_type( $result, $i );
          $len = mysql_field_len( $result, $i );
          $meta = mysql_fetch_field( $result, $i );
          $sflags = explode( ' ', mysql_field_flags ( $result, $i ) );
          $fl = 0;
          if( $meta->not_null ) $fl += 1;
          if( $meta->primary_key ) $fl += 2;
          if( $meta->unique_key ) $fl += 4;
          if( $meta->multiple_key ) $fl += 8;
          if( $meta->blob ) $fl += 16;
          if( $meta->unsigned ) $fl += 32;
          if( $meta->zerofill ) $fl += 64;
          if( in_array( 'binary', $sflags ) ) $fl += 128;
          if( in_array( 'enum', $sflags ) ) $fl += 256;
          if( in_array( 'auto_increment', $sflags ) ) $fl += 512;
          if( in_array( 'timestamp', $sflags ) ) $fl += 1024;
          if( in_array( 'set', $sflags ) ) $fl += 2048;
          if( $type == 'int' ) {
            if( $len > 11 ) $type = 8;                    # LONGLONG
            elseif( $len > 9 ) $type = 3;                # LONG
            elseif( $len > 6 ) $type = 9;                # INT24
            elseif( $len > 4 ) $type = 2;                # SHORT
            else $type = 1;                              # TINY
          } elseif( $type == 'real' ) {
            if( $len == 12 ) $type = 4;                  # FLOAT   
            elseif( $len == 22 ) $type = 5;              # DOUBLE
            else $type = 0;                              # DECIMAL
          } elseif( $type == 'null' ) $type = 6;          # NULL
          elseif( $type == 'timestamp' ) $type = 7;      # TIMESTAMP
          elseif( $type == 'date' ) $type = 10;          # DATE
          elseif( $type == 'time' ) $type = 11;          # TIME
          elseif( $type == 'datetime' ) $type = 12;      # DATETIME
          elseif( $type == 'year' ) $type = 13;          # YEAR
          elseif( $type == 'blob' ) {
            if( $len > 65536 ) $type = 251;              # LONG BLOB
            elseif( $len > 255 ) $type = 252;            # BLOB
            else $type = 249;                            # TINY BLOB
          } elseif( $type == 'string' ) $type = 253;      # VARCHAR
          else
            $type = 252;
          dump( $type );
          dump( $fl );
          dump( $len );
        }
        for( $i = 0; $i < $height; ++$i ) {
          $row = mysql_fetch_row( $result );
          for( $j = 0; $j < $width; ++$j )
            if( is_null($row[$j]) )
              dump( '' );
            else
              dump( ' '.$row[$j] );
        }
        mysql_free_result( $result );
      }
    }
  }
  mysql_free_result( mysql_query( $commit ? 'COMMIT' : 'ROLLBACK' ) );

} elseif( $_POST['server'] == 'pgsql' ) {

  $conn = '';
  if( $_POST['host'] != '' ) $conn .= "host=$_POST[host]";
  if( $_POST['port'] != '' ) $conn .= " port=$_POST[port]";
  if( $_POST['dbname'] != '' ) $conn .= " dbname=$_POST[dbname]";
  if( $_POST['user'] != '' ) $conn .= " user=$_POST[user]";
  if( $_POST['password'] != '' ) $conn .= " password=$_POST[password]";
  $conn = pg_connect( $conn ) || pgerr('some connection error');

  if( !$commit || array_key_exists( 'r2', $_POST ) )
    pg_free_result( pg_query( 'BEGIN' ) );
  $result = FALSE;
  for( $rn = 1; $rn < 1000; ++$rn ) {
    if( !array_key_exists( 'r'.$rn, $_POST ) )
      break;
    $data = 'OK:';
    $req = $_POST['r'.$rn];
    if( $req == 'connect' ) {
      dump( 0 );
      dump( 0 );
      dump( 0 );
    } elseif( substr($req,0,11) == 'blob_create' ) {
      list($oid) = sscanf( $req, 'blob_create %u' );
      pg_free_result( pg_query( $commit ? 'COMMIT' : 'ROLLBACK' ) );
      pg_free_result( pg_query( 'BEGIN' ) );
      $oid = pg_lo_create() or pgerr('lo_create failed');
      pg_free_result( pg_query( 'COMMIT' ) );
      pg_free_result( pg_query( 'BEGIN' ) );
      dump($oid);
    } elseif( substr($req,0,11) == 'blob_delete' ) {
      list($oid) = sscanf( $req, 'blob_delete %u' );
      $oid = pg_lo_unlink($oid) or pgerr('lo_unlink failed');
    } elseif( substr($req,0,10) == 'blob_write' ) {
      list($oid) = sscanf( $req, 'blob_write %s ' );
      $bin = substr($req,12+strlen($oid));
      $obj = pg_lo_open($oid,'w') or pgerr( 'lo_open failed' );
      $res = pg_lo_write($obj,$bin) or pgerr( 'lo_write failed' );
      pg_lo_close($obj);
      dump($res);
    } elseif( substr($req,0,9) == 'blob_read' ) {
      list($oid) = sscanf( $req, 'blob_read %u' );
      $obj = pg_lo_open($oid,'r') or pgerr( 'lo_open failed' );
      pg_lo_seek($obj,0,PGSQL_SEEK_END);
      $len = pg_lo_tell($obj);
      pg_lo_seek($obj,0,PGSQL_SEEK_SET);
      $res = pg_lo_read($obj,$len) or pgerr( 'lo_read failed' );
      pg_lo_close($obj);
      dump($res);
    } else {
      $result = pg_query($req) or pgerr("error at request: $req");
      if( pg_result_status($result) == PGSQL_COMMAND_OK ) {
        dump( 0 );
        dump( pg_affected_rows($result) );
        dump( pg_last_oid($result) );
        pg_free_result($result);
      } elseif( pg_result_status($result) == PGSQL_EMPTY_QUERY ) {
        dump( 0 );
        dump( 0 );
        pg_free_result($result);
      } elseif( pg_result_status($result) == PGSQL_TUPLES_OK ) {
        $width = pg_num_fields($result);
        $height = pg_num_rows($result);
        dump($width);
        dump($height);
        for( $i = 0; $i < $width; ++$i ) {
          $type = pg_field_type( $result, $i );
          dump( pg_field_name( $result, $i ) );
          dump( $type );
          dump( pg_field_size( $result, $i ) );
        }
        for( $i = 0; $i < $height; ++$i ) {
          $row = pg_fetch_row( $result );
          for( $j = 0; $j < $width; ++$j )
            if( is_null($row[$j]) )
              dump( '' );
            else
              dump( ' '.$row[$j] );
        }
        pg_free_result( $result );
      } else {
        $e = pg_result_error($result);
        pg_free_result($result);
        err( $e );
      }
    }
  }
  pg_free_result( pg_query( $commit ? 'COMMIT' : 'ROLLBACK' ) );

} else {
  err("server type '$_POST[server] is not supported");
}
if( $data != '' ) echo $data;
?>
전체 196,490 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT