고급 JAVA

InetAddress 클래스

행복하게사는게꿈 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();