`
leonardleonard
  • 浏览: 821618 次
社区版块
存档分类
最新评论

C#独立域名查询

阅读更多
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">
域名whois查询(.NET版): <asp:TextBox id="txtDomain" value="3cts.com" runat ="server" />
&nbsp;<asp:Button id="btnQuery" OnClick="doQuery" text="Query!" runat ="server" />
<BR><HR width="100%"><BR>
<asp:label id="txtResult" runat ="server" />
</form>

</body>
</html> 
 
分享到:
评论

相关推荐

    C#独立域名查询代码

     @Page Language=”C#” %&gt; &lt;&#37; @Import Namespace=”System.Net.Sockets” %&gt; &lt;&#37; @Import Namespace=”System.Text” %&gt; &lt;&#37; @Import Namespace=”System.IO” %&gt; &lt;&#37; @...

    c#多线程程序设计,IP地址dns域名解析

    在C#中,`System.Net.DNS`类提供了DNS查询的功能。例如,我们可以使用`GetHostEntry`方法,传入一个IP地址或域名,它会返回一个`IPHostEntry`对象,其中包含了主机名、IP地址列表等信息。 下面是一段简单的示例代码...

    domainQuery C#源码

    对于二级域名查询,可能需要通过递归或者迭代的方式,不断查询到顶级域名,以获取完整的域名结构。 此外,源码中可能还包含了异步编程的概念,因为DNS查询通常涉及到网络通信,可能会有延迟。C# 5.0引入了async/...

    一个asp.net虚拟域名系统

    【ASP.NET虚拟域名系统】是一种基于ASP.NET技术构建的服务器端解决方案,用于在单个物理服务器上托管多个独立的网站,每个网站可以拥有自己的域名,而无需实际的IP地址分配给每个站点。这个系统的核心原理是利用IIS...

    2级域名转接

    在IT行业中,二级域名转接是一项常见的网络技术,主要用于管理和优化网站结构,或者为不同的服务或项目提供独立的访问入口。这个系统允许用户创建无限数量的二级域名,并将它们指向特定的URL,实现灵活的网址转接。...

    项目实战+基于C#和Vue带GUI界面+小米商城管理系统(前后端源码)

    项目部署通常需要IIS服务器或者Nginx,同时需要配置域名、SSL证书以及数据库连接。确保项目在生产环境中稳定运行。 这个项目实战为开发者提供了一个全面了解C#和Vue.js集成开发的机会,涵盖了从后端API设计到前端...

    基于C#的CMS站群系统源码.zip

    站群中的每个网站可能有独立的域名,但共享同一后台管理,数据同步和内容发布机制。 5. **Java和PHP**:虽然标题主要提及C#,但标签中包含了Java和PHP。这些也是常见的Web开发语言。Java常用于大型企业级应用,而...

    C#版本公文流转系统_OA系统

    “1元注册顶级域名.url”可能是域名注册服务,帮助用户建立独立的系统访问地址;“九网互联.url”和“Codejia.Com”可能是网络服务提供商或开发者社区,提供技术支持和交流平台。 总的来说,C#版本的公文流转系统_...

    C#单点登录

    1. **中央认证服务**:开发一个独立的认证服务器,负责验证用户的身份。这个服务器通常是一个Web API或者Controller,可以处理来自各个应用的认证请求。 2. **票据生成与验证**:当用户成功登录认证服务器后,...

    用C#实现的SOCKS5代理服务器源代码.rar

    每个客户端连接应在一个独立的线程或异步任务上运行,以防止阻塞其他客户端的处理。 6. **错误处理**: 在处理网络通信时,必须考虑到各种可能的异常情况,如网络中断、超时或协议错误。在C#中,你可以使用`try-...

    C#编写的TCPClient

    这个方法通常需要提供服务器的IP地址或域名以及端口号。例如: ```csharp TCPClient client = new TCPClient(); client.Connect(new IPEndPoint(IPAddress.Parse("192.168.1.100"), 12345)); ``` 发送和接收数据:...

    C#开发中谷歌地图调用

    但是一旦应用上线,必须使用有效的API密钥,且密钥只对特定的网站目录或域名生效。因此,针对不同域的网页,你需要为每个域注册独立的密钥。 在网页中引入谷歌地图API的JavaScript文件是必不可少的。例如: ```html...

    域名解析程序,把域名解析成IP的.net程序

    它可能使用了C#或VB.NET等.NET框架支持的语言编写,通过集成的System.Net命名空间中的类,如Dns类,来执行DNS查询。Dns.GetHostEntry()方法是常用的接口,用于获取指定主机名或IP地址的详细信息,包括IP地址列表。 ...

    C#网络应用编程考点整理

    IPHostEntry类将一个域名系统(DNS)的主机名与一组别名和一组匹配的IP地址关联。该类一般和Dns类一起使用。 八、DNS类 DNS类提供了在DNS服务器中查询与某个主机名或IP地址关联的IP地址列表的功能。GetHostEntry...

    ASP.NET MVC 使用二级域名来注册Area区域

    二级域名通常用于创建独立的入口点,以区分不同的服务或用户群体。例如,`blog.example.com` 和 `store.example.com` 分别代表一个博客和在线商店,但都属于同一主域名 `example.com`。在ASP.NET MVC中,通过路由...

    Step by Step Microsoft Visual C# 2013

    《Step by Step Microsoft Visual C# 2013》是一本面向开发者的入门...此外,书中所有的公司、组织、产品、域名、电子邮件地址、标识、人物、地点和事件均为虚构,与现实中的任何实体无关联,也不应有任何暗示的关联。

    C#程序通过函数调用命令

    在C#编程中,函数调用是实现程序逻辑的重要方式,它允许我们将复杂的任务分解为可重用、独立的代码块。在这个场景中,我们讨论的是如何通过函数调用来执行操作系统命令。这个例子中展示了一个名为`addUser`的函数,...

    asp.net(C#) BBS(论坛)程序源码

    本地调试将论坛压缩包解压到IIS对应的网站目录(如C:\inetpub\wwwroot\bbs),网络调试将解压出来的所有文件通过FTP上传到您的主页空间(如上传到空间中的bbs目录),如果您是独立服务器可参照本地调试的方式进行安装。...

    电子购物商城系统(C#实现)

    C#的ADO.NET或Entity Framework可以用来操作数据库,实现用户信息的存储和查询。 2. 商品模块:商品展示、分类、搜索、评价等功能。通过数据库设计和数据绑定技术,可以动态显示商品信息并实现搜索功能。 3. 购物车...

    C#代码规范.pdf

    2. 每个命名空间对应一个目录,采用反向域名方式命名,例如MyProject.TestSuite.TestTier对应MyProject/TestSuite/TestTier目录,避免使用点分隔的命名空间名。 **缩进** 缩进是代码美观和可读性的关键。规范建议...

Global site tag (gtag.js) - Google Analytics