欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net实现中英文多域名检测的方法

程序员文章站 2023-11-17 14:36:04
本文实例讲述了asp.net实现中英文多域名检测的方法。分享给大家供大家参考,具体如下: 第一步:在前台页面中写入js代码和相关控件 /****写入js代码**...

本文实例讲述了asp.net实现中英文多域名检测的方法。分享给大家供大家参考,具体如下:

第一步:在前台页面中写入js代码和相关控件

/****写入js代码****/
<%-- 域名检测 --%>
<script type="text/javascript">
  //判断输入的是否为中文域名
  function ischdomain(domainstr)
  {
    var flag = false;
    var compstr = "abcdefghigklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz-_0123456789";
    var domainlength = domainstr.length;//判断字符长度
    for(var i = 0;i < domainlength;i++)
    {
     var temp = domainstr.charcodeat(i);
     if(temp >= 10000)//含有字符编码大于10000的字符判断为中文,不太严格
     {
       flag=true;
     }
     else
     {
       var temp2 = compstr.indexof(domainstr.charat(i));
       if(temp2 == -1)
       {
        flag = false;
        break;
       }
     }
    }
    return flag;
   }
  //判断输入的是否为英文域名
  function isendomain(domainstr)
  {
    var flag = false;
    var compstr = "abcdefghigklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz-_0123456789";
    var domainlength = domainstr.length;
    for(var i = 0;i<domainlength;i++)
    {
     if(compstr.indexof(domainstr.charat(i)) == -1)
     {
       flag = false;
       break;
     }
     else
     {
       flag = true;
     }
    }
    return flag;
  }
   //中国等不能注册英文域名,把相应的checkbox的disabled属性设置为true,
   function trim(domainstr)
   {
    return domainstr.replace(/(^s*)|(s*$)/g, "");
   }
  //验证域名是哪一类型的
  function checkdomaintype()
  {
    var domainname = document.getelementbyid("txtdomainname").value;
    domainname = trim(domainname);//去掉输入的特殊符号
    if(ischdomain(domainname))//调用中文域名----------验证方法
    {
     setcheckbox(true);
    }
    else if(isendomain(domainname))//调用英文域名-----验证方法
    {
     setcheckbox(false);
    }
  }
  //为checkbox复选框的checked属性赋值
  function setcheckbox(flag)
  {
     document.getelementbyid("chkcom").disabled = flag;
     document.getelementbyid("chknet").disabled = flag;
     document.getelementbyid("chkorg").disabled = flag;
     document.getelementbyid("chkorgcn").disabled = flag;
     document.getelementbyid("chkcn").disabled = flag;
     document.getelementbyid("chkcomcn").disabled = flag;
     document.getelementbyid("chknetcn").disabled = flag;
     document.getelementbyid("chkgovcn").disabled = flag;
     document.getelementbyid("chkcouk").disabled = flag;
     document.getelementbyid("chkbiz").disabled = flag;
     document.getelementbyid("chkcc").disabled = flag;
     document.getelementbyid("chktv").disabled = flag;
     document.getelementbyid("chkinfo").disabled = flag;
     document.getelementbyid("chkchina").disabled = !flag;
     document.getelementbyid("chkcompany").disabled = !flag;
     document.getelementbyid("chknetwork").disabled = !flag;
     document.getelementbyid("chkorguk").disabled = flag;
     document.getelementbyid("chkus").disabled = flag;
     document.getelementbyid("chkmeuk").disabled = flag;
     document.getelementbyid("chkltduk").disabled = flag;
  }
  //检查输入的字符规范
//  function checkvalue()
//  {
//     if(document.getelementbyid("txtdomainname").value=='')
//    {
//      alert('请输入域名!');
//      return false;
//    }
//    if(document.getelementbyid("txtdomainname").value.length >= 60)
//    {
//      alert('域名长度不能超过60个字符!');
//      return false;
//    }
//    for(var i = 0;i < document.getelementbyid("txtdomainname").value.length;i++)
//    {
//      if(document.getelementbyid("txtdomainname").value.charat(i) == ' ')
//      {
//        alert('域名中不能含有空格!');
//        return false;
//        break;
//      }
//    }
//  }
</script>
/***写入相关控件***/
//用于显示查询的结果
<asp:panel id="indexpnldomainname" runat="server" width="100%" />
//
<table width="373" border="0" cellpadding="0" cellspacing="1">
 <tr>
  <td width="74" height="41">
<asp:checkbox id="chkcom" text=".com" runat="server" />
  </td>
  <td width="71" height="41">
    <asp:checkbox id="chkcn" text=".cn" runat="server" />
  </td>
  <td width="79" height="41">
    <asp:checkbox id="chkorg" text=".org" runat="server" />
  </td>
  <td width="71" height="41">
    <asp:checkbox id="chknet" text=".net" runat="server" />
  </td>
  <td width="72" height="41">
    <asp:checkbox id="chkinfo" text=".info" runat="server" />
  </td>
 </tr>
 <tr>
  <td width="74" height="41">
    <asp:checkbox id="chkcomcn" text=".com.cn" runat="server" />
  </td>
  <td height="41">
    <asp:checkbox id="chkcc" text=".cc" runat="server" />
  </td>
  <td height="41">
    <asp:checkbox id="chkorgcn" text=".org.cn" runat="server" />
  </td>
  <td height="41">
    <asp:checkbox id="chknetcn" text=".net.cn" runat="server" />
  </td>
  <td height="41">
    <asp:checkbox id="chkin" text=".in" runat="server" />
   </td>
  </tr>
  <tr>
    <td width="74" height="40">
     <asp:checkbox id="chkcouk" text=".co.uk" runat="server" />
    </td>
    <td height="41">
     <asp:checkbox id="chktv" text=".tv" runat="server" />
    </td>
    <td height="41">
     <asp:checkbox id="chkorguk" text=".org.uk" runat="server" />
    </td>
    <td height="41">
     <asp:checkbox id="chkus" text=".us" runat="server" />
    </td>
    <td height="41">
     <asp:checkbox id="chkmeuk" text=".me.uk" runat="server" />
    </td>
   </tr>
   <tr>
    <td width="74" height="41">
     <asp:checkbox id="chkltduk" text=".ltd.uk" runat="server" />
    </td>
    <td height="41">
     <asp:checkbox id="chkbiz" text=".biz" runat="server" />
    </td>
    <td height="41">
     <asp:checkbox id="chknetwork" text=".网络" runat="server" />
    </td>
    <td height="41">
     <asp:checkbox id="chkcompany" text=".公司" runat="server" />
    </td>
    <td height="41">
     <asp:checkbox id="chkchina" text=".中国" runat="server" />
    </td>
   </tr>
</table>

第二步:在后台页面中写入方法

using system;
using system.collections;
using system.configuration;
using system.data;
using system.linq;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.htmlcontrols;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.xml.linq;
using system.text; //(需要引入的类文件命名空间)
using system.net.sockets; //(需要引入的类文件命名空间)
using system.text.regularexpressions; //(需要引入的类文件命名空间)
using system.collections.generic; //(需要引入的类文件命名空间)
using system.data.common; //(需要引入的类文件命名空间)
using system.xml; //(需要引入的类文件命名空间)
using system.io; //(需要引入的类文件命名空间)
using microsoft.sqlserver.server; //(需要引入的类文件命名空间)
using system.net; //(需要引入的类文件命名空间)
//判断是否为中文域名(方法)
public static bool ishaschzn(string domainname)
{
  regex regchzn = new regex("[一-龥]");
  match m = regchzn.match(domainname);
  return m.success;
}
//判断域名是否被注册(方法)
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;
 }
}
//按钮事件中
protected void imgbtncheck_click(object sender, imageclickeventargs e)
{
  string txtym = this.txtymname.text.trim();
  if (txtym == "")
  { scriptmanager.registerstartupscript(this, this.gettype(), "sc", "alert('对不起,域名不能为空!');", true); }
  else
  {
   string domainname = this.txtymname.text.trim();
   ilist<string> domainlist = new list<string>();//保存域名名称和后缀
domainlist.add(domainname);//list<string>第一元素保存域名名称,其他元素为域名后缀
   //判断是否为中文域名
   if (ishaschzn(domainname))
   {
    if (chkchina.checked) domainlist.add(chkchina.text);
if (chkcompany.checked) domainlist.add(chkcompany.text);
if (chknetwork.checked) domainlist.add(chknetwork.text);
   }
   else
   {
    if (chkcom.checked) domainlist.add(chkcom.text);
    if (chknet.checked) domainlist.add(chknet.text);
    if (chkorg.checked) domainlist.add(chkorg.text);
    if (chkorgcn.checked) domainlist.add(chkorgcn.text);
    if (chkcn.checked) domainlist.add(chkcn.text);
    if (chkcomcn.checked) domainlist.add(chkcomcn.text);
    if (chknetcn.checked) domainlist.add(chknetcn.text);
    if (chkinfo.checked) domainlist.add(chkinfo.text);
    if (chkcouk.checked) domainlist.add(chkcouk.text);
    if (chkbiz.checked) domainlist.add(chkbiz.text);
    if (chkcc.checked) domainlist.add(chkcc.text);
    if (chktv.checked) domainlist.add(chktv.text);
    if (chkorguk.checked) domainlist.add(chkorguk.text);
    if (chkus.checked) domainlist.add(chkus.text);
    if (chkmeuk.checked) domainlist.add(chkmeuk.text);
    if (chkltduk.checked) domainlist.add(chkltduk.text);
    if (chkin.checked) domainlist.add(chkin.text);
   }
   session["localpnldomainname"] = domainlist;
//将首页查询的域名结果显示出来
   if (session["localpnldomainname"] != null)
   {
    ilist<string> il = (ilist<string>)session["localpnldomainname"];
    if (il.count > 1)
    {
     string dm = il[0];
     string dname;
     label lbl;
for (int i = 1; i < il.count; i++)
     {
       dname = dm + il[i];
       if (isreg(dname))
       {
        lbl = new label();
        lbl.id = "lbl" + i.tostring();
        lbl.text = string.format("<p style='font-size:12px;color:green'>{0}    可以注册!</p>", dm + il[i]);
        indexpnldomainname.controls.add(lbl);
}
       else
       {
         lbl = new label();
         lbl.id = "lbl" + i.tostring();
         lbl.text = string.format("<p><a target='_blank' style='color:red;font-size:12px' title='点击跳转到该域名' href='http://www.{0}'>{1}    已被注册!</a>    <a target='_blank' style='font-size:12px;color:red' title='点击查看详细信息' href='http://whois.hichina.com/cgi-bin/whois?domain={2}'>[查看]</a></p>", dm + il[i], dm + il[i], server.urlencode(dm + il[i]));
         indexpnldomainname.controls.add(lbl);
        }
       }
      }
     }
}
}

更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net字符串操作技巧汇总》、《asp.net操作json技巧总结》、《asp.net操作xml技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

希望本文所述对大家asp.net程序设计有所帮助。