2014-11-29 7 views
0

포트 스캐닝을 계속 차단하면 호스트에 문제가 있습니다. 비록 그들이 나를 화이트리스트로 만들었지 만, 나의 지적 재산권은 역동적 인 것이기 때문에 실제로는 해결책이 아닙니다.JDBC/Java 앱 포트 스캐닝?

나는 호스트 맥에서 직접 MySQL 데이터베이스에 연결하는 데 사용하는 애플 리케이션은 MySQL Workbench와 내가 개발하고있는 응용 프로그램 만 확인했다. 포트 3306에 연결하도록 명시 적으로 요구하고있는 것처럼 MySQL Workbench가 포트 스캐닝을 수행하는 것이 아닙니다.

반면에, 제가 만들고있는 앱은 직접 연결하지 않는 것 같습니다. 항구로. 나는 JDBC가 이것을 자동적으로 수행했다는 것을 이해하고 있었지만, 그렇게하지는 않았다. 따라서 내 질문은, 어떻게 내 애플 리케이션 포트 3306 직접 가리킬 수 있습니까?

내 앱이 포트 스캐닝을 담당하는 앱이 아니며 다른 것일 수도 있습니다. 그러나 무엇을 알아낼 수 있습니다. 나는 어떤 종류의 보안 소프트웨어도 사용하지 않는다.

BTW, try/catch에서 나는 캐치를 내 localhost에 연결하여 작업을 계속하고 내 응용 프로그램을 테스트 할 수 있습니다.

import java.awt.Image; 
import java.awt.Toolkit; 
import java.awt.image.BufferedImage; 
import java.io.ByteArrayInputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.sql.*; 
import java.util.ArrayList; 

import javax.imageio.ImageIO; 
import javax.swing.JButton; 

import Controller.utilidadesGenericas; 
import Objetos.Generos; 
import Objetos.Tema; 
import Objetos.Usuario; 
import Objetos.Videojuego; 
import View.errorPopUp; 

public class database { 

    protected Connection conexion; 
    protected Statement statement; 

    protected static String schema = "federicoanelli_S"; 
    private static String host = "67.222.1.89"; 
    private static String user = "federicoanelli_S"; 
    private static String pass = "(PASSWORD HERE)"; 
    private static String servidor = "jdbc:mysql://"+host+"/" + schema; 

    //protected static String schema = "Streamz"; 
    //private static String user = "root"; 
    //private static String pass = ""; 
    //private static String servidor = "jdbc:mysql://localhost/" + schema; 


    public database() { 
     this.init(); 
    } 

    public void init() { 

     try { 
      Class.forName("com.mysql.jdbc.Driver");//com.mysql.jdbc.Driver 
      conexion = DriverManager.getConnection(servidor, user, pass); 
     } catch (Exception e) { 
      this.schema = "Streamz"; 
      this.user = "root"; 
      this.pass = ""; 
      this.servidor = "jdbc:mysql://localhost/"+this.schema; 
      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
       conexion = DriverManager.getConnection(servidor, user, pass); 
      } catch (ClassNotFoundException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      }//com.mysql.jdbc.Driver 
catch (SQLException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 

      e.printStackTrace(); 
     } 
    } 

    public Connection getConexion() { 
     return conexion; 
    } 

답변

1

당신은 직접 호스트 후 포트를 추가 할 수 있습니다 :

private static String servidor = "jdbc:mysql://"+host+":3306/" + schema; 
0

당신은 당신의 URL에 포트를 지정할 수

내 코드입니다. 또한 String.format(String, Object...)을 사용하여 servidor을 만들면

private static String host = "67.222.1.89"; 
private static int port = 3306; 
protected static String schema = "federicoanelli_S"; 
private static String servidor = String.format("jdbc:mysql://%s:%d/%s", 
    host,port,schema); 
와 같이 만들 수 있습니다.