c sharp independent domain name query code

  • 2020-05-05 11:49:44
  • OfStack

whois.aspx  

< %   @Page   Language="C#"   % >  
< %   @Import   Namespace="System.Net.Sockets"   % >  
< %   @Import   Namespace="System.Text"   % >  
< %   @Import   Namespace="System.IO"   % >  
< %   @Import   Namespace="System.Collections"   % >  
< script   language="C#"   runat   ="server" >  
void   doQuery(Object   sender,   EventArgs   e)  
{  
String   strDomain   =   txtDomain.Text;  
char[]   chSplit   =   {'.'};  
string[]   arrDomain   =   strDomain.Split(chSplit);  
//   es   darf   genau   ein   domain   name   +   ein   suffix   sein  
if   (arrDomain.Length   !=   2)  
{  
return;  
}  
//   das   suffic   darf   nur   2   oder   3   zeichen   lang   sein  
int   nLength   =   arrDomain[1].Length;  
if   (nLength   !=   2   &&   nLength   !=   3)  
{  
return;  
}  
Hashtable   table   =   new   Hashtable();  
table.Add("at",   "whois.nic.at");  
table.Add("de",   "whois.denic.de");  
table.Add("be",   "whois.dns.be");  
table.Add("gov",   "whois.nic.gov");  
table.Add("mil",   "whois.nic.mil");  
String   strServer   =   "whois.OnlineNIC.com";  
if   (table.ContainsKey(arrDomain[1]))  
{  
strServer   =   table[arrDomain[1]].ToString();  
}  
else   if   (nLength   ==   2)  
{  
//   2-letter   TLD's   always   default   to   RIPE   in   Europe  
strServer   =   "whois.ripe.net";  
}  
String   strResponse;  
bool   bSuccess   =   DoWhoisLookup(strDomain,   strServer,   out   strResponse);  
if   (bSuccess)  
{  
txtResult.Text   =   strResponse;  
}  
else  
{  
txtResult.Text   =   "Lookup   failed";  
}  
}  
bool   DoWhoisLookup(String   strDomain,   String   strServer,   out   String   strResponse)  
{  
strResponse   =   "none";  
bool   bSuccess   =   false;  
TcpClient   tcpc   =   new   TcpClient();  
try  
{  
tcpc.Connect(strServer,   43);  
}  
catch(SocketException   ex)  
{  
strResponse   =   "Could   not   connect   to   Whois   server";  
return   false;  
}  
strDomain   +=   "\r\n";  
Byte[]   arrDomain   =   Encoding.ASCII.GetBytes(strDomain.ToCharArray());  
try  
{  
Stream   s   =   tcpc.GetStream();  
s.Write(arrDomain,   0,   strDomain.Length);  
StreamReader   sr   =   new   StreamReader(tcpc.GetStream(),   Encoding.ASCII);  
StringBuilder   strBuilder   =   new   StringBuilder();  
string   strLine   =   null;  
while   (null   !=   (strLine   =   sr.ReadLine()))  
{  
strBuilder.Append(strLine+" < br > ");  
}  
tcpc.Close();  
bSuccess   =   true;  
strResponse   =   strBuilder.ToString();  
}  
catch(Exception   e)  
{  
strResponse   =   e.ToString();  
}  
return   bSuccess;  
}  
< /script >  
< html >  
< head >  
< title > < /title >  
< /head >  
< body >  
< form   runat   ="server" >  
Domain name whois (.NET version):   < asp:TextBox   id="txtDomain"   value="3cts.com"   runat   ="server"   / >  
  < asp:Button   id="btnQuery"   OnClick="doQuery"   text="Query!"   runat   ="server"   / >  
< BR > < HR   width="100%" > < BR >  
< asp:label   id="txtResult"   runat   ="server"   / >  
< /form >  
< /body >  
< /html >  

Related articles: