DNS解析

胡乱写了一个用于解析MX记录的东西, 有bug。

Imports System.Net.Sockets
Imports System.IO

Public Class DnsQuery

    Public Shared Function LookupMX(ByVal Domain As String) As List(Of String)
        Using UC As New UdpClient,
              mem As New MemoryStream,
              bw As New BinaryWriter(mem)
            UC.Connect("8.8.8.8", 53)
            bw.Write(CByte(0))
            bw.Write(CByte(2))
            bw.Write(CByte(1))
            bw.Write(CByte(0))
            bw.Write(CByte(0))
            bw.Write(CByte(1))
            bw.Write(CByte(0))
            bw.Write(CByte(0))
            bw.Write(CByte(0))
            bw.Write(CByte(0))
            bw.Write(CByte(0))
            bw.Write(CByte(0))
            For Each substr In Split(Domain, ".")
                bw.Write(CByte(substr.Length))
                For Each c In substr
                    bw.Write(CByte(AscW(c)))
                Next
            Next
            bw.Write(CByte(0))
            bw.Write(CByte(0))
            bw.Write(CByte(15))
            bw.Write(CByte(0))
            bw.Write(CByte(1))
            Dim ReadySend As Byte() = mem.ToArray
            UC.Client.Send(ReadySend)
            Dim Recv(10240) As Byte
            UC.Client.Receive(Recv)
            Return Parse(Recv)
        End Using
    End Function

    Public Shared Function Parse(ByVal ansbytes() As Byte) As List(Of String)
        '这里写的bug很多, 源代码无法放出。
    End Function
End Class

发表评论

注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

本文链接:https://twd2.me/archives/1495QrCode