'Gateway'에 해당되는 글 2건

  1. 2012.06.17 게이트웨이
  2. 2012.06.10 자바에서 게이트웨이 주소 얻기
인터넷/계정2012. 6. 17. 19:42

게이트웨이 주소 활용법


위에서 언급한 대로, 네트워크 자동 할당 기능을 사용한다면 게이트웨이 주소를 사용자가 신경 쓸 필요는 없지만, 간혹 인터넷이 안될 경우 기초 점검 작업에 활용할 수 있다. 인터넷은 무조건 게이트웨이를 거쳐야 하기 때문에 컴퓨터와 게이트웨이 간의 연결 문제를 점검하면 원인을 파악할 수 있다.

 

우선 윈도우의 명령 프롬프트에서 ‘ipconfig’를 실행하여 현재의 기본 게이트웨이 IP 주소를 확인한다.

 

C:\ipconfig

 

만약 게이트웨이 주소가 없다면 무언가 잘못된 것이므로, ‘ipconfig /renew’를 실행하여 네트워크 설정을 재설정(갱신)하거나(DHCP 환경), 정확한 설정을 직접 입력해야 한다.

 

기본 게이트웨이 주소가 정상적으로 입력돼 있다면, ‘ping’ 명령어를 통해 게이트웨이와의 연결 상태를 점검한다.

 

C:\ping 192.168.0.1

 

게이트웨이로 ping 수행 결과: 상태 양호

게이트웨이로 ping 수행 결과: 상태 양호

 

 

ping 수행 결과 컴퓨터와 기본 게이트웨이 간의 연결 상태에 별 문제 없다고 판단되면, 특정 인터넷 사이트를 대상으로 ‘ping’을 수행하거나, ‘tracert’ 명령을 실행해 해당 목적지까지 어떤 게이트웨이(라우터)를 거치는지 점검할 수 있다. 이때 각 게이트웨이의 통신 상태도 함께 확인할 수 있다. 참고로 ‘tracert(trace route)’ 명령은 목적지까지 거치는 라우터를 추적하는 역할이다.

 

C:\tracert naver.com

 

‘tracert(trace route)’ 명령을 사용하면 목적지까지 거치는 라우터를 추적할 수 있다

‘tracert(trace route)’ 명령을 사용하면 목적지까지 거치는 라우터를 추적할 수 있다

 

 

인터넷 설정 삼총사, IP 주소+서브넷 마스크+게이트웨이


고속도로를 통해 원하는 목적지에 도착하기 위해서는 자동차와 연료, 운전자가 필요한 것처럼, 게이트웨이를 통해 인터넷에 연결하기 위해서는 IP 주소와 서브넷 마스크, 게이트웨이가 필요하다. 셋 중 하나만 빠지거나 잘못 되도 인터넷 연결은 불가능해진다. 오늘날 인터넷은 컴퓨터 생활에 있어 대단히 중요한 근간이기에 이를 가능케 하는 이러한 기본 정보는 알아두는 게 바람직하다. 따라서 현재의 IP 주소와 서브넷 마스크, 게이트웨이 주소를 따로 적어두면 언젠가는 분명 긴급하게 써 먹을 때가 있을 것이다.

Posted by wrnly
프로그램/java&eclipse2012. 6. 10. 00:55

 자바에서는 게이트웨이의 주소를 얻을 수 있는 방법이 존재하지 않는다.
 따라서 다음과 같은 트릭으로 게이트웨이 주소를 얻는다.

private String getRouterIP()
{
        
        String _255 = "(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)";
        String exIP = "(?:" + _255 + "\\.){3}" + _255;
 
        // Regexp to find the good line
        java.util.regex.Pattern pat = java.util.regex.Pattern.compile("^\\s*(?:0\\.0\\.0\\.0\\s*){1,2}("+exIP+").*");
        Process proc;
        try {
 
            // netstat
            proc = Runtime.getRuntime().exec("netstat -rn");
      
            java.io.InputStream inputstream =
                    proc.getInputStream();
            java.io.InputStreamReader inputstreamreader =
                new java.io.InputStreamReader(inputstream);
            java.io.BufferedReader bufferedreader =
                new java.io.BufferedReader(inputstreamreader);
    
            // Parsing the result
            String line;
            while ((line = bufferedreader.readLine()) != null) {
                java.util.regex.Matcher m = pat.matcher(line);
                
                // This is the good line
                if(m.matches()){
                    
                    // return the first group
                    return m.group(1);
                }
            }
        // can't find netstat
        } catch (java.io.IOException ex) {
            //java.util.logging.Logger.getLogger(NetworkManager.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
        }
        
        return null;
    }

Posted by wrnly