ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • InetAddress 클래스
    JAVA/Network 2020. 10. 14. 13:34

    InetAddress클래스는 주소를 가지고 와서 저장하는 클래스이다.
    특정 IP를 찾을 때 해당 클래스를 활용한다.

    IP주소를 확인해서 어디에서 글을 올렸는지를 알 수 있다.

    접속자에 따라 세부적인 기록을 할 수 있다. 해당 정보를 가지고 와서 저장하는 용도의 클래스

     

     

    소스 코드

    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    public class AddressTest{
    	public static void main(String[] args) throws UnknownHostException 
    	{
    		InetAddress address = null;	//	인터넷 주소를 관리하는 클래스
    		
    		//	getLocalHost함수의 의미는 지역 호스트로 내 주소를 들고온다.
    		address = InetAddress.getLocalHost();
    		
    		System.out.println("나의 로컬 컴퓨터 이름 : " +address.getHostName());
    		System.out.println("나의 로컬 컴퓨터 IP : " +address.getHostAddress());
    		System.out.println("나의 로컬 컴퓨터 IP(byte) : " +address.getAddress());
    		System.out.println();
    		
    		//	다른 사람의 주소를 가지고 오자.
    		InetAddress addr1 = InetAddress.getByName("naver.com");
    		System.out.println("네이버 IP 주소 : " +addr1.getHostAddress());
    		System.out.println("addr1 : " +addr1);	//	addr1 객체는 문자열임을 알 수 있다.
    		
    		//	여러 개의 IP주소를 갖고 있을 수 있으므로, 아래와 같이 문장을 써서 확인해보자.
    		InetAddress[] naver = InetAddress.getAllByName("naver.com");
    		for (int i = 0; i < naver.length; i++){
    			System.out.println(naver[i]);
    		}
    	}
    }

     

     

     

    서버에 접속해서 데이터를 가지고 와서 데이터 출력

     

    프로그램 실행결과

    소스 코드

    import java.io.*;
    import java.net.InetAddress;
    import java.net.Socket;
    
    public class HttpInfo {
    	public static void main(String[] args) throws IOException 
    	{
    		InetAddress naver = InetAddress.getByName("naver.com");	//	네이버 주소 얻어오기
    		
    		//	naver.com 주소를 가지고 소켓을 생성 
    		Socket socket = new Socket(naver,80);
    		
    		//	socket은 파일을 송수신을 할 수 있는 창구 역할을 한다.
    		OutputStream os = socket.getOutputStream();
    		
    		//	html 문서는 한글이 포함되어 있을 수 있다. 그래서 PrintWriter를 사용한다.
    		//	즉, 한글은 전달받기 때문에 2byte를 처리하는 객체가 필요하다.
    		PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(os)));
    		
    		InputStream is = socket.getInputStream();
    		
    		BufferedReader in = new BufferedReader(new InputStreamReader(is));
    		
    		//	2byte는 print함수를, 1byte는 write함수를 쓴다.
    		out.println("GET http://naver.com/ HTTP/1.1\r\n\n");	//	요청
    		out.flush();   											//  버퍼를 비운다.
    		
    		//	한줄 씩 읽기
    		while (true)
    		{
    			String data = in.readLine();
    			
    			//	데이터가 없으면 반복문 종료
    			if (data == null)
    				break;
    			
    			System.out.println(data);
    		}
    		socket.shutdownInput();
    		socket.shutdownOutput();
    		socket.close();
    	}
    }

     

    댓글

Designed by Tistory.