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

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

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

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

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




|

댓글 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;
?>
아.. 답변 감사합니다..
ㅠㅠ 근대 도통 이해가 잘 안되는군요..
http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=50771&sca=&sfl=wr_subject%7C%7Cwr_content&stx=tunnel&sop=and

이것도 참고해 보세요;;
댓글을 작성하시려면 로그인이 필요합니다. 로그인

자유게시판

+
제목 글쓴이 날짜 조회
16년 전 조회 1,090
16년 전 조회 1,251
16년 전 조회 1,080
16년 전 조회 1,090
16년 전 조회 1,367
16년 전 조회 1,273
16년 전 조회 1,208
16년 전 조회 1,118
16년 전 조회 1,778
16년 전 조회 1,099
16년 전 조회 1,242
16년 전 조회 1,101
16년 전 조회 1,111
16년 전 조회 1,066
16년 전 조회 1,381
16년 전 조회 1,101
16년 전 조회 1,095
16년 전 조회 1,124
16년 전 조회 1,255
16년 전 조회 1,106
16년 전 조회 1,097
16년 전 조회 1,780
16년 전 조회 1,770
16년 전 조회 1,122
16년 전 조회 1,202
16년 전 조회 1,095
16년 전 조회 1,135
16년 전 조회 1,287
16년 전 조회 1,088
16년 전 조회 1,512
🐛 버그신고