帮帮忙,帮我把VB的代码改成C#.

任何一个国际域名的信息都记录在DNS(域名服务器)上,如何查询关于某个域名的注册信息呢?象POP3是用于接收电子邮件一样,Whois服务是用于查询域名信息的。在美国这个服务由InterNIC提供。当你想确定一个域名是否存在,或者想获得该域名注册信息时,这个服务很有用。

一、Winsock控件能够提供执行Whois查找所需要的所有信息。步骤如下:
1.
连接到InterNIC服务器的端口43
2.
发送域名。
3.
读取来自服务器的答复。
4.
从服务器上断开连接。

二、设计界面以及源程序:



源程序包括以上窗体和一个模块文件,模块中的代码用来判断计算机是否连网。
1
、模块中的代码:
Public Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
Public Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
Public Const RAS95_MaxEntryName = 256
Public Const RAS95_MaxDeviceType = 16
Public Const RAS95_MaxDeviceName = 32 '
Public Type RASCONN95
dwSize As Long
hRasCon As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Public Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type



'自定义函数,判断是否连接到Internet
Public Function IsConnected() As Boolean
Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim RetVal As Long
Dim Tstatus As RASCONNSTATUS95
TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize
RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
If RetVal <> 0 Then
Exit Function
End If
Tstatus.dwSize = 160
RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
If Tstatus.RasConnState = &H2000 Then
IsConnected = True
Else
IsConnected = False
End If
End Function

2
、窗体中的代码:
Private Sub Form_Load()
'
可供选择的WhoIs服务器
With WhoIs_Server
'
第一条是查询国内域名的,其余可查询国际域名
.AddItem " whois.cnnic.net.cn "
.AddItem " whois.opensrs.net "
.AddItem " whois.networksolutions.com "
.AddItem " whois.nic.gov "
.AddItem " rs.internic.net "
.AddItem " whois.ripe.net "
.AddItem " whois.arin.net "
.AddItem " whois.apnic.net "
.AddItem " whois.aunic.net "
.ListIndex = 0
End With

End Sub
Private Sub Send_Query_Button1_Click()
Dim Selected_WhoIs_Server As String
If IsConnected() = False Then
MsgBox "
没有连接到Internet.", 64, "提示"

Else
Input_Label.Caption = ""
WhoIs_Response = ""

'
初始化Winsock
Winsock.Close
Winsock.LocalPort = 0
Selected_WhoIs_Server = Trim(WhoIs_Server.Text)
'
连接到WHOIS服务器数据库,端口号43
Winsock.Connect Selected_WhoIs_Server, 43
End If
End Sub
Private Sub Winsock_Connect()
'
连接WinSock并发送域名查询请求
If Trim(Domain_Name) = "" Then
WhoIs_Response = " No domain name was entered."
Beep
Exit Sub
End If

Winsock.SendData Trim(Domain_Name) & vbCrLf

End Sub
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
'
处理接收的Winsock数据流
Dim WhoIs_Data As String

On Error GoTo ERROR_HANDLER

Winsock.GetData WhoIs_Data
Input_Label.Caption = Input_Label.Caption & WhoIs_Data
WhoIs_Response = Input_Label.Caption
Exit Sub
'
错误处理
ERROR_HANDLER:
WhoIs_Response = Error
End Sub

三、本程序提供的功能既能查询国际域名,也能查询国内域名。如查询搜狐的结果如下所示。程序在Win98,VB6.0下运行通过。 

 

[
摘自计算机世界
]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值