最近在完成公司网站www.xuhongkj.com的时候,需要用到域名查询的功能,网上查了一些资料,几乎都是ASP版的,而且功能有限,不能满足我的要求。

百度后,结合网上的例子,整理出了该功能!

asp.net 域名注册查询功能, 支持批量后缀查询!

要实现查询,首先要找到域名查询接口,这里我们使用的是万网的域名查询接口

http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=

WHOIS信息接口:

http://whois.hichina.com/cgi-bin/whois?domain=

例如查询域名:tstmm.com

网址为:http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=tstmm.com

该网址返回的数据为XML格式:

<?xml version="1.0" encoding="gb2312"?>
  <property>
  <returncode>200</returncode>
  <key>tstmm.com</key>
  <original>210 : Domain name is available</original>
  </property>

返回 XML 结果说明:
returncode=200 表示接口返回成功
key=tstmm.com表示当前check的域名
original=210 : Domain name is available     表示域名可以注册
original=211 : Domain name is not available 表示域名已经注册
original=212 : Domain name is invalid   表示域名参数传输错误

所以我们通过分析original返的结果就可以知道该域名是否可以注册!

下面开始贴代码:

前台代码:

 <div style="width:330px;margin-top:50px;margin-left:100px;">
<div style="width:280px;margin-top:0px;">www.<input type="text" id="txtyuming" runat="server" style="width:120px;height:18px;border:1px solid #DEDEDE;" />  <asp:Button ID="btnselect" Text="查询" runat="server" onclick="btnselect_Click" /></div>
<div style="line-height:25px;">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><input id="chkcom" name="chk" type="checkbox" checked="checked" value='.com' />.com</td>
<td><input id="chknet" name="chk" type="checkbox" value='.net'/>.net</td>
<td><input id="chkcn" name="chk" type="checkbox" value='.cn'/>.cn</td>
<td><input id="chkcc" name="chk" type="checkbox" value='.cc'/>.cc</td>
</tr>
<tr>
<td><input id="chkinfo" name="chk" type="checkbox" value='.info'/>.info</td>
<td><input id="chkmobi" name="chk" type="checkbox" value='.mobi'/>.mobi</td>
<td><input id="chkasia" name="chk" type="checkbox" value='.asia'/>.asia</td>
<td><input id="chktv" name="chk" type="checkbox" value='.tv'/>.tv</td>
</tr>
<tr>
<td><input id="chkorg" name="chk" type="checkbox" value='.org'/>.org</td>
<td><input id="chkbiz" name="chk" type="checkbox" value='.biz' />.biz</td>
<td><input id="chkgov" name="chk" type="checkbox" value='.gov.cn'/>.gov.cn</td>
<td><input id="chkorgcn" name="chk" type="checkbox" value='.org.cn'/>.org.cn</td>
</tr>
<tr>
<td><input id="chkcomcn" name="chk" type="checkbox" value='.com.cn'/>.com.cn</td>
<td><input id="chknetcn" name="chk" type="checkbox" value='.net.cn'/>.net.cn</td>
<td><input id="chkname" name="chk" type="checkbox" value='.name'/>.name</td>
</tr>
</table>
</div> <div id="message" runat="server" style="color:red;margin-top:20px;"></div>
</div>

后台代码:

 protected void btnselect_Click(object sender, EventArgs e)
{
try
{
//检查域名是否为空
if (txtyuming.Value.Trim() != "")
{
string Domain = txtyuming.Value;//Domain 为要查询的域名名称
string Ext = ""; //Ext 为要查询的域名后缀 //获取页面中所有选中项
if (Request["chk"] != null)
{
Ext = Request["chk"].ToString();
} Whois(Domain,Ext);
}
}
catch (Exception)
{ } }
/// <summary>
/// 从“中国万网(www.net.cn)”实现域名查询功能
/// </summary>
/// <param name="Domain">域名</param>
/// <param name="Ext">后缀</param>
public void Whois(string Domain, string Ext)
{
string strResult = string.Empty; IList<string> domainList = new List<string>();//保存域名名称和后缀
domainList.Add(Domain);//List<string>第一元素保存域名名称,其他元素为域名后缀 //取出Ext里的后缀名放进ExtArry
string[] ExtArry = Ext.Split(new char[] { ',' });
for (int i = 0; i < ExtArry.Length; i++)
{
domainList.Add(ExtArry[i]);
} //显示域名查询情况:
if (domainList.Count > 1)
{
string dm = domainList[0];
string dname;
for (int i = 1; i < domainList.Count; i++)
{
dname = dm + domainList[i];
if (IsReg(dname))
{
strResult += dname + "可以注册!"+"<br/>";
}
else
{
strResult += dname + "不可以注册!" + "<br/>";
}
}
} // strResult;
message.InnerHtml = strResult;//输出结果;
} //判断域名是否被注册(方法)
//利用万网的查询接口http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=进行查询
public static bool IsReg(string domainName)
{
bool flag = false;
string dm = HttpContext.Current.Server.UrlEncode(domainName);
try
{
WebClient wc = new WebClient();
string xmlstr = wc.DownloadString("http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=" + dm);
StringReader sr = new StringReader(xmlstr);
XmlTextReader xr = new XmlTextReader(sr);
while (xr.Read())
{
if (xr.IsStartElement("original"))
{
xr.Read();
if (xr.Value.Substring(0, 3) == "210")
{
flag = true;
break;
}
else
{
flag = false;
break;
}
}
}
return flag;
}
catch
{
return false;
}
}

代码下载:

http://download.csdn.net/detail/zx_001/5871995

asp.net 域名注册查询接口 支持批量后缀查询的更多相关文章

  1. Mysql 连接查询 Mysql支持的连接查询有哪些

    CREATE TABLE `chx` (   `id` VARCHAR(20) NOT NULL,   `name` VARCHAR(50) DEFAULT NULL,   `name2` CHAR( ...

  2. hibernate Criteria(条件查询接口)

    Criteria(条件查询接口) // 1.简单查询 List<Customer> list = session.createCriteria(Customer.class).list() ...

  3. 域名注册查询接口(API)的说明

    1.域名查询 接口采用HTTP,POST,GET协议: 调用URL:http://panda.www.net.cn/cgi-bin/check.cgi 参数名称:area_domain 值为标准域名, ...

  4. 【转】万网域名查询接口(API)的说明

    1.域名查询接口采用HTTP,POST,GET协议:调用URL:http://panda.www.net.cn/cgi-bin/check.cgi参数名称:area_domain 值为标准域名,例:h ...

  5. asp 支付宝 企业版 接口 支持网银接口 ,网银直接支付

    asp 支付宝 企业版 接口 支持网银接口 ,网银直接支付 仅仅是多了一个defalutbank的參数. 详细看 open.alipay.com <% ' 类名:AlipaySubmit ' 功 ...

  6. API之IP地址查询---权威的IP地址查询接口集合

    原文地址:http://yushine.iteye.com/blog/1717586 推荐实用IP138 http://www.baidu.com/s?wd=IP&rsv_spt=1& ...

  7. Spring Data JPA 简单查询--接口方法

    一.接口方法整理速查 下表针对于简单查询,即JpaRepository接口(继承了CrudRepository接口.PagingAndSortingRepository接口)中的可访问方法进行整理.( ...

  8. 国际快递查询接口JAVA示例-trackingmore

    国际快递查询接口 国际快递查询接口的需求量很大,例如一些跨境电商B2C网站.快递查询APP.快递柜.跨境物流公司等都会需要用到国际快递接口. 目前市面上的快递接口,以国内快递居多,有些虽然号称支持多家 ...

  9. linux sed命令查询结果前后批量追加内容(html文件批量修改css,js等文件路径)

    1.需求:linux使用shell命令查询结果前后批量追加内容 例如:我需要在当前目录下所有的css文件路径前追加域名 我想的是用sed替换去实现,鲍哥的思路是用for循环 1.1方法1:鲍哥的for ...

随机推荐

  1. CSS3学习笔记之径向展开菜单

    效果截图: HTML代码: <div class="menu-wrap"> <nav> <a href="" class=&quo ...

  2. HDU1099---数学 | 思维

    hdu 1099 Lottery题意:1~n编号的彩票,要买全,等概率条件下平均要买几张.已经买了m张时,买中剩下的概率为1-m/n,则要买的张数为1/(1-m/n)n=2,s=1+1/(1-1/2) ...

  3. 如何根据pom.xml文件下载jar包

    遇到过这种情况:从网上下载了一个项目, 使用的maven, 但是我想要新建一个项目, 但是不需要使用maven. 但是我怎么样才能将他那个项目的所有引用的jar包给下载下载下来呢; 1.下载一个mav ...

  4. 【LuoguP1169 bzoj1057】[ZJOI2007]棋盘制作

    首先把矩阵转化一下,把横纵坐标和为偶数点的值取反,这样就转化成求最大的'0'或'1'矩阵. 这道题每个数字是在格子内的,不能在边界包含障碍点. 求最大的0矩阵时,把1作为障碍点.求1同理. 然后求最接 ...

  5. 基于x64的处理器意思

    基于x64的处理器意思是CPU的架构是X64的,也是64位的CPU. 基本简介: "x86-64",有时会简称为"x64",是64位微处理器架构及其相应指令集的 ...

  6. Linux IO 同步/异步 阻塞/非阻塞

    同步IO:导致请求进程阻塞,直到IO操作完成: 是内核通知我们何时进行启动IO操作,而实际的IO操作需要当前进程本身阻塞完成: 包括:阻塞式IO模型,非阻塞式IO模型,IO复用模型,信号驱动式IO模型 ...

  7. python学习笔记 协程

    在学习异步IO模型前,先来了解协程 协程又叫做微线程,Coroutine 子程序或者成为函数,在所有语言中都是层级调用,比如a调用b,b调用c.c执行完毕返回,b执行完毕返回,最后a执行完毕返回 所以 ...

  8. Linux驱动 读写文件【转】

    转自:http://blog.csdn.net/h_armony/article/details/7546624 在VFS的支持下,用户态进程读写任何类型的文件系统都可以使用read和write着两个 ...

  9. TortoiseSVN安装使用【转】

    转自:http://www.cnblogs.com/rushoooooo/archive/2011/04/29/2032346.html TortoiseSVN是windows平台下Subversio ...

  10. 复选框回显、全选、非全选、cookie处理数据、json数组对象转换处理学习笔记参考的页面

    <%@include file="/common/head.jsp"%> <%@ page contentType="text/html; charse ...