[JAVA] PING 과 TELNET 용법 소개

14883 단어 telnet
JAVA 의 PING 는 JDK 1.5 이후 새로운 함수 인 isreachable 로 구현 되 었 습 니 다. 구체 적 으로 다음 과 같이 소개 합 니 다.
InetAddress 대상 의 일반적인 방법
InetAddress 류 는 호스트 이름, 호스트 주소 등 정 보 를 얻 기 위해 get 방법 이 많 습 니 다.주로:
byte [] getAddress () 는 InetAddress 대상 의 원본 IP 주 소 를 되 돌려 byte 배열 로 저장 합 니 다.
String getCanonicalHostName () 이 IP 주소 의 완전 한정 도 메 인 이름 가 져 오기
String getHostAddress () IP 주소 의 문자열 을 가 져 와 String 으로 되 돌려 줍 니 다.
String getHostName () 이 IP 주소 의 호스트 이름 가 져 오기
다음 간단 한 예 는 이러한 방법의 사용 을 보 여 준다.
 

  
    
1 package org.dakiler.javanet.chapter1;
2    import java.net.InetAddress;
3    public class Example3
4   {
5    public static void main(String args[]) throws Exception
6   {
7   InetAddress address = InetAddress.getByName( " www.microsoft.com " );
8   System.out.println( " ip: " + address.getHostAddress());
9   System.out.println( " host: " + address.getHostName());
10   System.out.println( " canonical host name: " + address.getCanonicalHostName());
11    byte [] bytes = address.getAddress();
12    for ( byte b:bytes)
13   {
14    if (b >= 0 )System.out.print(b);
15    else System.out.print( 256 + b);
16   System.out.print( " " );
17   }
18   }
19   }
20  

 
이 예 는 먼저 www. microsoft. com 에 대응 하 는 InetAddress 인 스 턴 스 를 가 져 온 다음 address. getHostAddress (), address. getHostName () 을 각각 인쇄 합 니 다.
address. getCanonical HostName ().
이 예 에서 주의해 야 할 것 은 IP 주소 중 하나 가 0 - 255 사이 이 고 기호 가 없 는 것 이다.
그러나 자바 의 byte 가 표시 하 는 구역 은 - 128 ~ 127 이기 때문에 중간 에 전환 이 필요 합 니 다.
결 과 는 다음 과 같다.
  ip: 207.46.19.254
 host: www.microsoft.com 
 canonical host name: wwwbaytest2.microsoft.com
 207 46 19 254

1.2. InetAddress

  isReachable(int timeout) IP

  isReachable(NetworkInterface netif,int ttl,int timeout) IP ,

NetworkInterface,ttl ,timeout 。


   
     
1 package org.dakiler.javanet.chapter1;
2    import java.net.InetAddress;
3    public class Example4
4   {
5    public static void main(String args[]) throws Exception
6   {
7   InetAddress address1 = InetAddress.getLocalHost();
8   InetAddress address2 = InetAddress.getByName( " www.baidu.com " );
9   System.out.println(address1.isReachable( 5000 ));
10   System.out.println(address2.isReachable( 5000 ));
11   }
12   }
13  
본 기기 의 도달 여부 와 www. baidu. com 의 도달 여 부 를 각각 시험 합 니 다.실행 결 과 는?
    true 
  false
이상 하 다 고 생각 하 십 니까? 전 자 는 정상 이지 만 이치 에 따 르 면 www. baidu. com 도 도달 할 수 있 을 것 입 니 다. 실제로 false 가 확실 합 니 다. 이 이 유 는 isReachable 의 실현 때 문 입 니 다.
보통 ICMP ECHO Request 나 대상 호스트 의 포트 7 을 사용 해 연결 을 시도 하 는데 방화벽 에 의 해 차단 되 어 접근 하지 못 할 가능성 이 높다.
TELNET 을 원한 다 면 다음 과 같은 코드 가 정확 할 것 입 니 다.

   
     
1 // TODO Auto-generated method stub
2     Socket server = null ;
3    try {
4   server = new Socket();
5   InetSocketAddress address = new InetSocketAddress( " bbs.sysu.edu.cn " , 23 );
6   server.connect(address, 5000 );
7   System.out.println( " ok! " );
8   }
9    catch (UnknownHostException e) {
10   System.out.println( " wrong! " );
11   e.printStackTrace();
12   } catch (IOException e) {
13   System.out.println( " wrong " );
14   e.printStackTrace();
15   }

좋은 웹페이지 즐겨찾기