lucamauri
12/22/2013 - 10:17 PM

Query WHOIS databases for data on domain names

Query WHOIS databases for data on domain names

Public Class clsWhoIs
        Public Enum registry
            whois_arin_net = 0
            whois_ripe_net = 1
            whois_apnic_net = 2
        End Enum
        Function test(ByVal ipAddress As String, ByVal queryTo As registry) As String
            Dim tcpc As New TcpClient()
            Dim strDomain As String
            Dim arrDomain As Byte()
            Dim s As Stream
            Dim sr As StreamReader
            Dim result As New StringBuilder
            Dim line As String

            Try
                tcpc.Connect(System.Enum.GetName(GetType(registry), queryTo).ToString.Replace("_", "."), 43)
                strDomain = ipAddress & Environment.NewLine

                arrDomain = Encoding.ASCII.GetBytes(strDomain.ToCharArray())
                s = tcpc.GetStream()
                s.Write(arrDomain, 0, strDomain.Length)
                sr = New StreamReader(tcpc.GetStream(), Encoding.ASCII)

                Do
                    line = sr.ReadLine()
                    If line IsNot Nothing AndAlso line.Length > 0 Then
                        Select Case line.Substring(0, 1)
                            Case "%", " ", "*"
                            Case Else
                                result.Append(line)
                                result.Append("<br />")
                        End Select
                    End If
                Loop Until line Is Nothing

                Return result.ToString
            Catch ex As Exception
                Return ex.ToString
            Finally
                tcpc.Close()
            End Try
        End Function
    End Class