마지막으로, 나는 새로운 것을 배울 시간이 있습니다
ASP+구성 요소도 도메인 이름 쿼리의 기능을 달성 할 수 있지만 ASP의 개선은 너무 큽니다.
더 많은 것이 있습니다. 글쎄, 덜 말도 안되는 이야기를하고 소스 코드를 보자.
< % @page language = "c#" %>
< % @assembly name = "System.net" %>
< % @import namespace = "system.net.sockets" %>
< % @import 네임 스페이스 = "System.Text" %>
< % @import 네임 스페이스 = "System.io" %>
< % @import namespace = "System.Collections" %>
<script language = "c#"runat = "server">
void doquery (객체 발신자, EventArgs e)
{{
String Strongomain = txtDomain.text;
char [] chsplit = { '.'};
문자열 [] arrduin = strdomain.split (chsplit);
int nlenth = arrdomain [1] .length;
해시 테이블 테이블 = new Hashtable ();
table.add ( "de", "whois.denic.de");
table.add ( "be", "whois.dns.be");
table.add ( "gov", "whois.nic.gov");
table.add ( "mil", "whois.nic.mil");
문자열 strserver; // Whois 서버 정의
// DomainName의 끝이 CN 인 경우 서버는 CNNIC입니다. 그렇지 않으면 NetworkSolutions입니다.
if (arrdomain [arrdomain.length -1] == "CN")
{{
strserver = "159.226.6.139";
}
또 다른
{{
strserver = "whois.networksolutions.com";
}
if (table.containskey (Arrdomain [1]))
{{
strserver = 테이블 [Arrdomain] [1];
}
else if (nlength == 2)
{{
// LTTER TLD는 항상 유럽에서 익었습니다
strserver = "whois.ripe.net";
}
문자열 strrrsponse;
bool bsuccess = dowhoislookup (strdomain, strserver, out strrresponse);
if (bsuccess)
{{
txtresult.text = strrresponse;
}
또 다른
{{
txtresult.text = "조회 실패";
}
}
BOOL DOWHOISLOKUP (String strdomain, String Strserver, Out String strrresponse)
{{
strrREPONSE = "NONE";
bool bsuccess = false;
tcpclient tcpc = 새로운 tcpclient ();
if (0 == tcpc.connect (strserver, 43))
{{
strdomain += "/r/n";
바이트 [] arrdomain = encoding.ascii.getBytes (strdomain.tocharray ());
노력하다
{{
스트림 s = tcpc.getStream ();
s.write (arrdomain, 0, strdomain.length);
StreamReader sr = new StreamReader (tcpc.getStream (), encoding.ascii);
StringBuilder strBuilder = new StringBuilder ();
while (-1! = sr.peek ())
{{
strbuilder.append (sr.readline ()+"<br>");
}
tcpc.close ();
bsuccess = true;
strrREPONSE = strBuilder.toString ();
}
캐치 (예외 E)
{{
strrREPONSE = E.TOSTRING ();
}
반환 bsuccess;
}
또 다른
{{
strrresponse = "Whois 서버에 연결할 수 없습니다";
거짓을 반환합니다.
}
거짓을 반환합니다.
}
</스크립트>
<html>
<헤드>
<제목> </title>
</head>
<body>
<form runat = "Server">
도메인 이름 : www.
<asp : button id = "btnquery"onclick = "doquery"text = "query!"
<br> <HR> <br>
<asp : label id = "txtresult"runat = "Server" />
</form>
</body>
</html>