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