ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • InetAddress 클래스
    고급 JAVA 2020. 5. 22. 16:30

    InetAddress 클래스

     

    IP정보 가져오기

    // naver사이트 ip정보 가져오기
    		
    		InetAddress naverIp = InetAddress.getByName("www.naver.com");
            
    		System.out.println("Host Name -> " + naverIp.getHostName());
            
    		System.out.println("Host Address -> " + naverIp.getHostAddress());
            
    		System.out.println();
    		
    		//자기 자신 컴퓨터의 IP주소 가져오기
            
    		InetAddress localIp = InetAddress.getLocalHost();
            
    		System.out.println("내 컴퓨터의 Host Name = > " + localIp.getHostName());
            
    		System.out.println("내 컴퓨터의 Host Address -> " + localIp.getHostAddress());
            
    		System.out.println();
    		
    		//ip주소가 여러개인 호스트의 정보 가져오기
            
    		InetAddress[] naverIps = InetAddress.getAllByName("www.naver.com");
            
    		for(InetAddress nIp : naverIps) {
            
    			System.out.println(nIp.toString());
                
    		}

     

    URL 클래스

     -> 인터넷에 존재하는 서버들의 자원에 접근할 수 있는 주소를 관리하는 클래스

    	// http:// ddit.or.kr:80//index.html?ttt=123
    		
    		URL url = new URL("http", "ddit.or.kr",80,"main/index.html?ttt=123#kkk");
    		
    		System.out.println("전체 URL주소 : http://ddit.or.kr:80/main/index.html?ttt=123#kkk");
            
    		System.out.println("protocal : " + url.getProtocol() );
            
    		System.out.println("Host : " + url.getHost());
            
    		System.out.println("File : " + url.getFile());
            
    		System.out.println("query : " + url.getQuery());
            
    		System.out.println("path : " + url.getPath());
            
    		System.out.println("port" + url.getPort());
            
    		System.out.println("ref : " + url.getRef());
    		
    		System.out.println(url.toExternalForm());
            
    		System.out.println(url.toString());
            
    		System.out.println(url.toURI().toString());

    URLConnection 클래스

    // URLConnection -> 애플리케이션과 URL간의 통신 연결을 위한 추상 클래스
    		
    		// 특정 서버(예 : naver서버) 의 정보와 파일 내용을 출력하는 예제
    		
    		URL url = new URL("https://www.naver.com/index.html");
    		
    		//Header 정보 가져오기
    		
    		// URLConnection 객체 구하기
            
    		URLConnection urlCon = url.openConnection();
    		
    		System.out.println("Content-Type : " + urlCon.getContentType());
            
    		System.out.println("Encoding : " + urlCon.getContentEncoding());
            
    		System.out.println("Content : " + urlCon.getContent());
    		
    		//전체 Header 정보 출력하기
            
    		Map<String, List<String>> headerMap = urlCon.getHeaderFields();
    		
    		//Header의 Key값 구하기
            
    		Iterator<String> iterator = headerMap.keySet().iterator();
            
    		while(iterator.hasNext()) {
            
    			String key = iterator.next();
                
    			System.out.println(key + " : " + headerMap.get(key));
                
    		}
            
    		System.out.println("-------------------------------------------------");
    		
    		// 해당 호스트의 페이지 내용 가져오기
    		
    		// 파일을 읽어오기 위한 스트림 생성
    		
    		// 방법1 -> URLConnection의 getInputStream 메서드 이용하기
            
    		// InputStream is = urlCon.getInputStream(); 
            
    		// 방법2 -> URL객체의 openStream() 메서드 이용하기
            
            // InputStream is = url.openStream();
    		
    		InputStream is = url.openConnection().getInputStream();
            
    		InputStreamReader isr = new InputStreamReader(is, "UTF-8");
            
    		BufferedReader br = new BufferedReader(isr);
    		
    		//내용 출력하기
            
    		while(true) {
            
    			String str = br.readLine();
                
    			if(str == null) {
                
    				break;
    			}
                
    			System.out.println(str);
    		}
            
    		//스트림닫기
            
    		br.close();

     

    '고급 JAVA' 카테고리의 다른 글

    javaFX 라이프 사이클  (0) 2020.05.22
    TCP / UDP  (0) 2020.05.22
    JavaFX 정리  (0) 2020.05.16
    API  (0) 2020.04.24
    JSON  (0) 2020.04.24

    댓글

Designed by Tistory.