mysql 포트 열려있는 호스팅업체들이 어디어디있을까요? 정보
mysql 포트 열려있는 호스팅업체들이 어디어디있을까요?
본문
제가 JAVA로 그누보드 연동 회원정보 검색 수정 및 출력하는 프로그램을 만들고 있는대요..
대부분의 호스팅업체들이 mysql 포트를 막아놔서 만들어논놈이 쓸모가 없어지고 있네요..
http 터널링으로 mysql을 수정하는 프로그램들이 있긴 하던대..
자바 초보라 그런건 할줄도 모르고..
일단 Paran에서는 테스트 성공했는대.. 에휴..
다른 호스팅은 어디가..
아참..회원정보는 이름 연락처 메일 주소 사진 뭐 이런거만 받아올겁니다..
학원생 관리 뭐 이런 용도로 쓸거라..
아.. 그리고 Java 입니다 Java Script 아닙니다.
인스톨 프로그램으로 만들 예정입니다.
아.. 너무 허접해 보이네..^^;;
대부분의 호스팅업체들이 mysql 포트를 막아놔서 만들어논놈이 쓸모가 없어지고 있네요..
http 터널링으로 mysql을 수정하는 프로그램들이 있긴 하던대..
자바 초보라 그런건 할줄도 모르고..
일단 Paran에서는 테스트 성공했는대.. 에휴..
다른 호스팅은 어디가..
아참..회원정보는 이름 연락처 메일 주소 사진 뭐 이런거만 받아올겁니다..
학원생 관리 뭐 이런 용도로 쓸거라..
아.. 그리고 Java 입니다 Java Script 아닙니다.
인스톨 프로그램으로 만들 예정입니다.
아.. 너무 허접해 보이네..^^;;

추천
0
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;
?>
거의 모든 호스팅 업체는 외부로 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;
?>

아.. 답변 감사합니다..
ㅠㅠ 근대 도통 이해가 잘 안되는군요..
ㅠㅠ 근대 도통 이해가 잘 안되는군요..
