实现大批量域名查询 及 whois查询
protected void btnWhois_Click(object sender, EventArgs e)
{
string strServer = strServerOth;
string strDomain = txtDomain.Text.ToString();
//string strDomainType;
string strResponse;
lblResult.Text = "";
try
{
string[] arrDomain = strDomain.Split('.');
if (arrDomain.Length == 3)
{
//if (arrDomain[1].ToUpper() == "COM" && arrDoma

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.IO;
public partial class _Default : System.Web.UI.Page 

{
public string strServerCom = "whois.internic.com";
public string strServerCN = "whois.cnnic.net.cn";
public string strServerOth0 = "drop.cnnic.net.cn";
//public string strServerOth = "whois.hichina.com";
public string strServerOth = "whois.hichina.com";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lblResult.Text = "";
}
}

域名查询事件#region 域名查询事件
protected void btnWhois_Click(object sender, EventArgs e)
{
string strServer = strServerOth;
string strDomain = txtDomain.Text.ToString();
//string strDomainType;
string strResponse;
lblResult.Text = "";
try
{
string[] arrDomain = strDomain.Split('.');
if (arrDomain.Length == 3)
{
//if (arrDomain[1].ToUpper() == "COM" && arrDomain[2] == "CN")
//{
// strServer = strServerOth0;
//}
strServer = AutoChoiseWhois(arrDomain[2].ToUpper());
}
else
{
strServer = AutoChoiseWhois(arrDomain[1].ToUpper());
//if (arrDomain[1].ToUpper() == "CN")
//{
// strServer = strServerCN;
//}
}
}
catch
{
lblResult.Text = "抱歉,您所提交的域名查询参数不正确!";
return;
}

bool blSuccess = ShowWhois(strDomain, strServer, out strResponse);
if (blSuccess)
{
lblResult.Text = strResponse;
}
else
{
lblResult.Text = "查找失败
.";
}
}
#endregion

新域名查询事件#region 新域名查询事件
protected void btnIsExist_Click(object sender, EventArgs e)
{
string sFlag = "\r\n"; //计算要查询的个数用
string strDomain = txtDomain.Text.Trim();
string tmpDomain = null;
string strServer = strServerOth;
string strErrMsg = null;
lblResult.Text = "";
string[] arr1 = Regex.Split(strDomain, sFlag, RegexOptions.IgnoreCase | RegexOptions.Singleline);
int nRet = arr1.Length;//得到域名查询个数
try
{
for (int pi = 0; pi < nRet; pi++)
{
tmpDomain = arr1[pi].ToString();
string[] arrDomain = tmpDomain.Split('.');//域名分割
if (arrDomain.Length == 3)
{
strServer = AutoChoiseWhois(arrDomain[2].ToUpper());
//if (arrDomain[1].ToUpper() == "COM" && arrDomain[2] == "CN")
//{
// strServer = strServerOth0;
//}
}
else
{
strServer = AutoChoiseWhois(arrDomain[1].ToUpper());
//if (arrDomain[1].ToUpper() == "CN")
//{
// strServer = strServerCN;
//}
}
if (IsExits(tmpDomain, strServer, out strErrMsg) == false)
lblResult.Text += tmpDomain + "<font color=blue>[可以注册]</font> <br>";
else
lblResult.Text += tmpDomain + "<font color=red>[已注册]</font> <br>";
if (strErrMsg != null)
lblResult.Text = strErrMsg.ToString();
}
}
catch
{
lblResult.Text = "抱歉,您所提交的域名查询参数不正确!";
}

}
#endregion

调用查询Whois函数#region 调用查询Whois函数
/**//// <summary>
/// 调用查询Whois函数
/// </summary>
/// <param name="strDomain">要查询的域名</param>
/// <param name="strServer">对应域名服务品</param>
/// <param name="strResponse">返回信息值</param>
/// <returns></returns>
private bool ShowWhois(string strDomain, string strServer, out string strResponse)
{
strResponse = "none";
bool blSuccess = false;
TcpClient tcpc = new TcpClient();
try
{
tcpc.Connect(strServer, 43);
}
catch (SocketException ex)
{
strResponse = ex.Message;
return false;
}
strDomain += "\r\n";
Byte[] arrDomain = Encoding.UTF8.GetBytes(strDomain.ToCharArray());
try
{
Stream s = tcpc.GetStream();
s.Write(arrDomain, 0, strDomain.Length);
StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.UTF8);
StringBuilder strBuilder = new StringBuilder();
string strLine = null;
while (null != (strLine = sr.ReadLine()))
{
strBuilder.Append(strLine + "<br>");
}
tcpc.Close();
blSuccess = true;
string my = "Power By Bluesky:<a href=\"http://www.519sou.com\" title=\"我要就搜\">www.519sou.com</a><br>";
my += "QQ:184817846 Email:ltwl@qq.com";
//string my = null;
strResponse = strBuilder.ToString() + my;
}
catch (Exception e)
{
strResponse = e.ToString();
}
return blSuccess;
}
#endregion

调用查询注册与否函数#region 调用查询注册与否函数
/**//// <summary>
/// 调用查询注册与否函数
/// </summary>
/// <param name="strDomain">要查询的域名</param>
/// <param name="strServer">对应域名服务器</param>
/// <param name="strErrMsg">返回错误信息</param>
/// <returns></returns>
private bool IsExits(string strDomain, string strServer,out string strErrMsg)
{
strErrMsg = null;
bool blSuccess = false;
TcpClient tcpc = new TcpClient();
try
{
tcpc.Connect(strServer, 43);
}
catch (SocketException ex)
{
strErrMsg = ex.Message;
return false;
}
strDomain += "\r\n";
Byte[] arrDomain = Encoding.UTF8.GetBytes(strDomain.ToCharArray());
try
{
Stream s = tcpc.GetStream();
s.Write(arrDomain, 0, strDomain.Length);
StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.UTF8);
StringBuilder strBuilder = new StringBuilder();
string strLine = null;
while (null != (strLine = sr.ReadLine()))
{
strBuilder.Append(strLine + "<br>");
}
tcpc.Close();
blSuccess = S_Result(strBuilder.ToString(), strServer);
}
catch (Exception e)
{
strErrMsg = e.ToString();
}
return blSuccess;
}
#endregion

分析返回结果#region 分析返回结果
/**//****************************************************************
*
* Powere By Bluesky On Date[2007-5-31]
*
* *************************************************************/
/**//// <summary>
/// 分析返回结果
/// </summary>
/// <returns>不存在 True 存在 False</returns>
private bool S_Result(string strResponse,string strServer)
{
string strReg = "no match";
bool bFlag = false;
if (strServer.ToLower() == "whois.dotmobiregistry.net")
{
if (strResponse.ToLower().Trim().StartsWith("not found") == false)
bFlag = true;
}
else if (strServer.ToLower() == "whois.cnnic.net.cn")
{
if (strResponse.ToLower().Trim().StartsWith("no matching") == false)
bFlag = true;
}
else
{
if (strResponse.ToLower().Trim().IndexOf(strReg) < 1)
bFlag = true;
}
return bFlag;
}
#endregion

自动选择WHOIS服务器#region 自动选择WHOIS服务器
private string AutoChoiseWhois(string domainType)
{
string WhoisServer;
switch (domainType.ToUpper())
{
case "COM":
WhoisServer = "whois.internic.com";
break;
case "NET":
WhoisServer = "whois.internic.com";
break;
case "CN":
WhoisServer = "whois.cnnic.net.cn";
break;
case "ORG":
WhoisServer = "whois.internic.com";
break;
case "EDU":
WhoisServer = "whois.verisign-grs.net";
break;
case "BIZ":
WhoisServer = "whois.biz";
break;
case "NAME":
WhoisServer = "whois.nic.name";
break;
case "GOV":
WhoisServer = "whois.nic.gov";
break;
case "INFO":
WhoisServer = "whois.afilias.info";
break;
case "MOBI":
WhoisServer = "whois.dotmobiregistry.net";
break;
default:
WhoisServer = "whois.hichina.com";
break;
}
return WhoisServer;
}
#endregion
}
下载地址:https://files.cnblogs.com/web263/31120913467.rar
浙公网安备 33010602011771号