java를 이용하여 방화벽 체크

Written on 2022-09-03
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.UnknownHostException;
 
public class FirewallCheck {
	
  public static void main(String[] args) throws UnknownHostException, IOException {
    SocketAddress endpoint =  new InetSocketAddress(args[0], Integer.valueOf(args[1]));

    Socket socket = new Socket();
    socket.connect(endpoint, 3000);
    System.out.println("connect SUCCESS!!!");
  }
}

컴파일

$ javac FirewallCheck.java;

실행

# java FirewallCheck -classpath . [ip] [port]
$ java -classpath . FirewallCheck 111.222.333.444 3000;

Experience

  • 방화벽 open 상태이고, port Listen 중일때
    connect SUCCESS!!!
    


  • 방화벽은 open 상태이나, port listen 중이 아닐때
    Exception in thread "main" java.net.ConnectException: Connection refused: connect
      at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
      at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
      at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
      at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
      at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
      at java.net.PlainSocketImpl.connect(Unknown Source)
      at java.net.SocksSocketImpl.connect(Unknown Source)
      at java.net.Socket.connect(Unknown Source)
      at jExample.portCheck.main(portCheck.java:18)
    


  • 방화벽이 open 상태가 아닐때
    Exception in thread "main" java.net.SocketTimeoutException: connect timed out
      at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
      at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
      at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
      at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
      at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
      at java.net.PlainSocketImpl.connect(Unknown Source)
      at java.net.SocksSocketImpl.connect(Unknown Source)
      at java.net.Socket.connect(Unknown Source)
      at jExample.portCheck.main(portCheck.java:18)