-
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();