상세 컨텐츠

본문 제목

(자바) 클라이언트 소켓 프로그래밍 (Client Socket Programming)

Programming language/자바

by choiDev 2019. 1. 31. 11:33

본문

클라이언트 소켓 프로그래밍 (Client Socket Programming)


소켓 프로그래밍 순서

1. 소켓클래스의 생성자를 사용하여 소켓 객체를 만든다.

2. 스트림 객체를 생성

3. write와 read를 사용하여 메시지를 송수신한다.

4. 소켓과 스트림을 닫느다.


[Whois 서버에 접속하는 클라이언트 소켓 프로그래밍]

import java.io.*;
import java.net.Socket;

public class WhoisQuery {
public static void main(String args[]){
String domainNameToCheck = "abcnews.com";
try{
performWhoisQuery("whois.internic.net",43,domainNameToCheck);
}catch( Exception e){
e.printStackTrace();
}
}

public static void performWhoisQuery(String host, int port, String query)throws Exception{
System.out.println("**** Performing whois query for '" + query + "' at " +
host + ":" + port);

//호스트와 포트번호를 이용하여 소켓 객체를 생성한다.
Socket socket = new Socket(host, port);

Writer out = new OutputStreamWriter(socket.getOutputStream(),"ISO-8859-1");
out.write(query);
out.write("\r\n");
out.flush();

//위에서 데이터를 전송하고 getInputStream()메소드를 사용하여
//서버로부터 응답데이터를 가리킨다.
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
BufferedReader in = new BufferedReader(isr);

String line = "";
while((line = in.readLine()) != null){
System.out.println(line);
}
}
}


[결과]

**** Performing whois query for 'adcnews.com' at whois.internic.net:43

   Domain Name: ADCNEWS.COM

   Registry Domain ID: 96805600_DOMAIN_COM-VRSN

   Registrar WHOIS Server: whois.registermatrix.com

   Registrar URL: http://www.registermatrix.com

   Updated Date: 2018-03-25T04: 20: 50Z

   Creation Date: 2003-04-14T18: 13: 59Z

   Registry Expiry Date: 2019-04-14T18: 13: 59Z

   Registrar: Media Elite Holdings Limited

   Registrar IANA ID: 1114

   Registrar Abuse Contact Email: billing@registermatrix.com

   Registrar Abuse Contact Phone:  50766190531

   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited

   Name Server: NS1.HASTYDNS.COM

   Name Server: NS2.HASTYDNS.COM

   DNSSEC: unsigned

   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/

>>> Last update of whois database: 2019-01-31T02: 19: 32Z <<<


For more information on Whois status codes, please visit https://icann.org/epp


Whois서버에 소켓으로 접근한 뒤 받아온 데이터를 아래와 같이 출력한 예제 였습니다.

저희가 받아온 Whois 데이터는 아래와 같으니 참고하세요~

/**
* 포트 번호 : 43 (Whois)
*
* Whois는 도메인에 관한 정보확인을 위해 유용하게 쓰입니다. Whois 서버에서 얻을 수 있는 정보는
* 아래와 같습니다.
*
* - 등록, 관리 기관
* - 도메인 이름, 도메인 관련 인터넷 자원 정보
* - 등록자, 관리자, 기술 관리자의 이름 및 연락처, 이메일 계정
* - 레코드 생성 시기와 갱신 시기
* - 주 DNS 서버와 보조 DNS서버
* - IP 주소의 할당 지역 위치
* */


관련글 더보기