Platforms to show: All Mac Windows Linux Cross-Platform
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Network/Query MX Records
This example is the version from Wed, 16th Jan 2024.
Project "Query MX Records.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class MainWindow Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
End Control
Control DomainField Inherits TextField
ControlInstance DomainField Inherits TextField
EventHandler Sub TextChange()
QueryButton.Enabled = Me.Text.Len > 0
End EventHandler
End Control
Control QueryButton Inherits PushButton
ControlInstance QueryButton Inherits PushButton
EventHandler Sub Action()
Me.Enabled = False
RunQuery DomainField.Text
End EventHandler
End Control
EventHandler Sub Open()
RunQuery "monkeybreadsoftware.de"
RunQuery "xojo.com"
RunQuery "gmail.com"
End EventHandler
Sub RunQuery(domain as string)
Dim q As New DNSServiceQueryRecordMBS
Const kDNSServiceType_MX = 15
Const kDNSServiceClass_IN = 1
AddHandler q.ServiceQueryRecord, WeakAddressOf ServiceQueryRecord
If q.QueryRecord(0, domain, kDNSServiceType_MX, kDNSServiceClass_IN) Then
queries.append q
Else
list.AddRow domain, "", "Failed to start query."
End If
End Sub
Sub ServiceQueryRecord(query as DNSServiceQueryRecordMBS, flags as integer, InterfaceIndex as integer, ErrorCode as integer, Fullname as string, rrType as Integer, rrClass as integer, Length as Integer, Data as string, ttl as Integer)
If ErrorCode = 0 Then
Dim d As MemoryBlock = data
Dim byte0 As Integer = d.Int8Value(0)
Dim priority As Integer = d.Int8Value(1)
Dim name As String = ""
Dim pos As Integer = 2
While pos < d.Size
Dim Len As Integer = d.UInt8Value(pos)
Dim part As String = d.StringValue(pos+1, Len)
If name = "" Then
name = part
Else
name = name + ("." + part)
End If
pos = pos + 1 + len
Wend
list.AddRow fullname, priority.ToString, name
Else
list.AddRow fullname, "", "Error: "+ErrorCode.ToString
End If
End Sub
Property queries() As DNSServiceQueryRecordMBS
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
MenuItem HelpMenu = "&Help"
End MenuBar
Sign
End Sign
End Project
The items on this page are in the following plugins: MBS Network Plugin.