using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Threading.Tasks; using IPMeow.Dns; namespace IPMeow.Test; public class DnsTest { [Fact] public async Task TestDns() { using UdpClient udp = new UdpClient(AddressFamily.InterNetwork); udp.Connect(IPAddress.Parse("1.1.1.1"), 53); DnsMessage msg = new() { IsRecursionDesired = true, IsRecursionAvailable = true, MessageId = 0xbabe, MessageType = DnsMessageType.Query, Opcode = DnsMessageOpcode.Query, Questions = new List() { new QueryResourceRecord() { Class = ResourceRecordClass.IN, Name = "meow.lgbt", Type = ResourceRecordType.A }, }, ResponseCode = 0, }; var data = msg.Serialize(); await udp.SendAsync(data); var rec = await udp.ReceiveAsync(); var res = DnsMessage.Deserialize(rec.Buffer); Assert.Equal(DnsMessageType.Reply, res.MessageType); Assert.Equal(0xbabe, res.MessageId); } }