域名查询源码

  1. usingSystem;
  2. usingSystem.Data;
  3. usingSystem.Configuration;
  4. usingSystem.Web;
  5. usingSystem.Web.Security;
  6. usingSystem.Web.UI;
  7. usingSystem.Web.UI.WebControls;
  8. usingSystem.Web.UI.WebControls.WebParts;
  9. usingSystem.Web.UI.HtmlControls;
  10. usingSystem.Net;
  11. usingSystem.Net.Sockets;
  12. usingSystem.Text;
  13. usingSystem.Collections;
  14. usingSystem.Text.RegularExpressions;
  15. ///<summary>
  16. ///SelectYuMing的摘要说明
  17. ///</summary>
  18. publicclassSelectYuMing
  19. {
  20. publicSelectYuMing()
  21. {
  22. //
  23. //TODO:在此处添加构造函数逻辑
  24. //
  25. }
  26. /**/
  27. ///<summary>
  28. ///域名注册查询
  29. ///</summary>
  30. ///<paramname="domain">输入域名,不包含www</param>
  31. ///<returns></returns>
  32. publicstaticstringWhois(stringdomain)
  33. {
  34. if(domain==null)
  35. thrownewArgumentNullException();//如果输入为空就抛出一个空异常(停止程序的执行)
  36. intccStart=domain.LastIndexOf(".");//
  37. if(ccStart<0||ccStart==domain.Length)
  38. thrownewArgumentException();
  39. stringret="";
  40. Sockets=null;
  41. try
  42. {
  43. stringcc=domain.Substring(ccStart+1);
  44. s=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
  45. s.Connect(newIPEndPoint(Dns.Resolve(cc+".whois-servers.net").AddressList[0],43));
  46. s.Send(Encoding.ASCII.GetBytes(domain+"/r/n"));
  47. byte[]buffer=newbyte[1024];
  48. intrecv=s.Receive(buffer);
  49. while(recv>0)
  50. {
  51. ret+=Encoding.ASCII.GetString(buffer,0,recv);
  52. recv=s.Receive(buffer);
  53. }
  54. s.Shutdown(SocketShutdown.Both);
  55. }
  56. catch
  57. {
  58. thrownewSocketException();
  59. }
  60. finally
  61. {
  62. if(s!=null)
  63. s.Close();
  64. }
  65. returnret;
  66. }
  67. ///<summary>
  68. ///查询域名是否存在
  69. ///</summary>
  70. ///<paramname="str">所有的后缀的集合(com|cn|com.cn|hk|.net|mobi|asia|)</param>
  71. ///<paramname="strYuMing"></param>
  72. ///<returns></returns>
  73. publicArrayListSelectYu(ArrayListstr,stringstrYuMing)
  74. {
  75. ArrayListarr=newArrayList();
  76. foreach(stringstrYuinstr)
  77. {
  78. try
  79. {
  80. stringstrManage=Whois(strYuMing+strYu);
  81. Booleanboole=SelectURL(strManage,strYu);
  82. if(boole)
  83. {
  84. arr.Add("<span>此域名可以进行注册</span>");
  85. }
  86. else
  87. {
  88. arr.Add("<spanstyle='color:red'>此域名已经注册</span>");
  89. }
  90. }catch(Exception){
  91. arr.Add("<spanstyle='color:red'>网络访问失败</span>");
  92. }
  93. }
  94. returnarr;
  95. }
  96. ///<summary>
  97. ///得到服务器返回的信息进行比较
  98. ///</summary>
  99. ///<paramname="strManage">服务器返回的信息</param>
  100. ///<paramname="houZui">根据后缀进行比较</param>
  101. ///<returns>域名是否可用</returns>
  102. protectedBooleanSelectURL(stringstrManage,stringhouZui)
  103. {
  104. Booleanfalge=false;
  105. StringPattern="";
  106. RegexOptionsregex=newRegexOptions();
  107. switch(houZui)
  108. {
  109. case".cn"://cn返回的信息
  110. if(strManage=="nomatchingrecord")
  111. {
  112. falge=true;
  113. };
  114. break;
  115. case".com"://com返回的信息Net返回的信息cc返回的信息
  116. Pattern="Nomatch";
  117. MatchCollectionMatches1=Regex.Matches(strManage,Pattern,regex);
  118. foreach(MatchNextMatchinMatches1)
  119. {
  120. falge=true;
  121. }
  122. break;
  123. case".net":
  124. Pattern="Nomatch";
  125. MatchCollectionMatchess2=Regex.Matches(strManage,Pattern,regex);
  126. foreach(MatchNextMatchinMatchess2)
  127. {
  128. falge=true;
  129. }
  130. break;
  131. case".tv":
  132. Pattern="Nomatch";
  133. MatchCollectionMatchess6=Regex.Matches(strManage,Pattern,regex);
  134. foreach(MatchNextMatchinMatchess6)
  135. {
  136. falge=true;
  137. }
  138. break;
  139. case".name":
  140. Pattern="Nomatch";
  141. MatchCollectionMatchess7=Regex.Matches(strManage,Pattern,regex);
  142. foreach(MatchNextMatchinMatchess7)
  143. {
  144. falge=true;
  145. }
  146. break;
  147. case".cc":
  148. Pattern="Nomatch";
  149. MatchCollectionMatchess3=Regex.Matches(strManage,Pattern,regex);
  150. foreach(MatchNextMatchinMatchess3)
  151. {
  152. falge=true;
  153. }
  154. break;
  155. case".mobi"://mobi返回的信息org返回的信息asia返回的信息
  156. if(strManage=="NOTFOUND/n")
  157. {
  158. falge=true;
  159. };
  160. break;
  161. case".org":
  162. if(strManage=="NOTFOUND/n")
  163. {
  164. falge=true;
  165. };
  166. break;
  167. case".info":
  168. if(strManage=="NOTFOUND/n")
  169. {
  170. falge=true;
  171. };
  172. break;
  173. case".asia":
  174. if(strManage=="NOTFOUND/n")
  175. {
  176. falge=true;
  177. };
  178. break;
  179. case".biz":
  180. Pattern="Notfound";//BIZ返回的信息
  181. MatchCollectionMatchess4=Regex.Matches(strManage,Pattern,regex);
  182. foreach(MatchNextMatchinMatchess4)
  183. {
  184. falge=true;
  185. }
  186. break;
  187. case".hk":
  188. Pattern="DomainNotFound";//hk返回的信息
  189. MatchCollectionMatchess5=Regex.Matches(strManage,Pattern,regex);
  190. foreach(MatchNextMatchinMatchess5)
  191. {
  192. falge=true;
  193. }
  194. break;
  195. case".com.cn":
  196. if(strManage=="nomatchingrecord")
  197. {
  198. falge=true;
  199. }
  200. break;
  201. case".net.cn":
  202. if(strManage=="nomatchingrecord")
  203. {
  204. falge=true;
  205. }
  206. break;
  207. }
  208. returnfalge;
  209. }
  210. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值