whois를 JspBean으로 만들어 봤습니다.
한글도메인은 실력이 부족한 관계로 지원을 하지 않습니다..ㅠ..ㅜ;;
도메인이 3자리일 경우에는 krnic 서버로 접근합니다.
(일본도메인이나 기타국 도메인일경우 한국도메인 서버로 접근해 찾아오기 때문에 얻어 오지 못할수도 있습니다)
그외의 두자리 도메인인경우는 모두 internic으로 접근합니다.
버그가 많죠..ㅎㅎ
예제로 만든거니깐 적당히 로직을 넣어서 사용하시면 될거 같습니다.
import java.net.Socket;
import java.io.*;
public class Whois {
private Socket conn;
private BufferedReader input = null;
private PrintStream output = null;
private String WHOIS_SERVER;
private int WHOIS_PORT = 43;
private boolean DEBUG = false;
public Whois() {
}
/**
* WHOIS 소켓을 얻어옴
* @param url
* @param port
*/
public void getWhoisConnetion (String url, int port) {
try {
conn = new Socket(url, port);
if(DEBUG) System.out.println("connection : " +conn);
input = new BufferedReader(new InputStreamReader(conn.getInputStream()));
output = new PrintStream(conn.getOutputStream());
}
catch (java.net.UnknownHostException e) {
if(DEBUG) System.err.println("Whois: unknown host: " + WHOIS_SERVER);
}
catch(Exception e) { }
}
/**
* 연결된 소켓을 닫는다
*/
public void stop () {
try { input.close(); } catch(Exception e) {}
try { output.close(); } catch(Exception e) {}
try { conn.close(); } catch(Exception e) {}
}
/**
* WHOIS 검색을 한다
* @param query 검색어
* @return 검색된 내용
*/
public String getWhois(String query) {
int strlen = query.length();
if (query.substring((strlen - 3), strlen).equals(".kr")) {
WHOIS_SERVER = "whois.krnic.or.kr";
}
else {
WHOIS_SERVER = "whois.networksolutions.com";
}
return getWhoisSearch(query);
}
/**
* WHOIS 검색을 한다
* @param query 검색어
* @return 검색된 내용
*/
public String getWhoisSearch (String query) {
String rvparam = "";
try {
getWhoisConnetion(WHOIS_SERVER, WHOIS_PORT);
output.println(query);
String line;
try {
while ((line = input.readLine()) != null) {
if(DEBUG) System.out.println(line);
rvparam += line + "<br>";
}
}
catch(IOException e){}
finally {
this.stop();
}
}
catch (Exception e) {
if(DEBUG) System.err.println("Whois: " + e);
return null;
}
return rvparam;
}
}
첫댓글 항상 좋은 강좌 감사합니다!! ^^ 비록 제가 실력이 안되서 이해할 수 있는 것은 아니지만. ㅡ.ㅡ;
감사요,..저도 아는게 없는데..ㅠ.ㅠ