public void Query(string serverHost, int serverPort, string name, string qtype)
        {
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            var        ipv4Address = GetIpv4Address(serverHost);
            IPEndPoint endPoint    = new IPEndPoint(ipv4Address, serverPort);

            socket.Connect(endPoint);

            var input = DnsUtils.CreateQuestionAsBytes(name, qtype);

            Console.WriteLine($"Sending: { input.Length }bytes data");
            socket.Send(input);

            Console.WriteLine("Receiving...");
            var output = new byte[512];
            var c      = socket.Receive(output);

            Console.WriteLine($"Received {c}bytes");

            var dnsPacket = new byte[c];

            Array.Copy(output, dnsPacket, c);
            DnsUtils.ReadAndPrintDnsMessage(dnsPacket);

            socket.Close();
        }