Example #1
1
        public static void Main(string[] args)
        {
            DnsServer server = new DnsServer("8.8.8.8");

            foreach(string domain in args) {
                Console.WriteLine("Redirecting {0} to localhost", domain);
                server.MasterFile.AddIPAddressResourceRecord(domain, "127.0.0.1");
            }

            server.Responded += (request, response) => Console.WriteLine("{0} => {1}", request, response);
            server.Listen();
        }
Example #2
0
        private void startServer(string serverAddress, List <string> officalServerAddress)
        {
            masterFile = new MasterFile();
            server     = new DnsServer(masterFile, "223.5.5.5");

            if (radioButton1.Checked)
            {
                masterFile.AddIPAddressResourceRecord(officalServerAddress[0], serverAddress);
            }
            else if (radioButton2.Checked)
            {
                masterFile.AddIPAddressResourceRecord(officalServerAddress[1], serverAddress);
            }
            else if (radioButton3.Checked)
            {
                masterFile.AddIPAddressResourceRecord(officalServerAddress[2], serverAddress);
            }
            else if (radioButton4.Checked)
            {
                masterFile.AddIPAddressResourceRecord(officalServerAddress[3], serverAddress);
            }
            else if (radioButton5.Checked)
            {
                masterFile.AddIPAddressResourceRecord(officalServerAddress[4], serverAddress);
            }

            server.Listen();
        }
Example #3
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            _server.Requested += Server_Requested;
            _server.Listening += () => Console.WriteLine("DNS Listening...");

            await _server.Listen();
        }
Example #4
0
        public static void Main(string[] args)
        {
            DnsServer server = null;

            (new Thread(() => {
                server = new DnsServer("8.8.8.8");

                server.Responded += (request, response) => Console.WriteLine("{0} => {1}", request, response);

                server.MasterFile.AddIPAddressResourceRecord("google.com", "127.0.0.1");

                server.Listen();
            })).Start();

            Thread.Sleep(1000);

            //Client client = new Client("72.21.204.209");
            //Client client = new Client("8.8.8.8");
            DnsClient client = new DnsClient("127.0.0.1");

            client.Reverse(IPAddress.Parse("173.194.69.100"));
            client.Lookup("google.com");
            //client.Lookup("dr.dk");
            //Console.WriteLine(client.Resolve("dnstest.managemydedi.com", RecordType.AAAA));

            client.Lookup("cnn.com");

            server.Close();
        }
Example #5
0
        public async static Task MainAsync(string[] args)
        {
            MasterFile masterFile = new MasterFile();
            DnsServer  server     = new DnsServer(masterFile, "8.8.8.8");

            masterFile.remo

            foreach (string domain in args)
            {
                Console.WriteLine("Redirecting {0} to localhost", domain);
                masterFile.AddIPAddressResourceRecord(domain, "127.0.0.1");
            }

            server.Responded += (sender, e) => Console.WriteLine("{0} => {1}", e.Request, e.Response);
            server.Listening += (sender, e) => Console.WriteLine("Listening");
            server.Errored   += (sender, e) => {
                Console.WriteLine("Errored: {0}", e.Exception);
                ResponseException responseError = e.Exception as ResponseException;
                if (responseError != null)
                {
                    Console.WriteLine(responseError.Response);
                }
            };

            await server.Listen();
        }
Example #6
0
        static async Task startServer(string ip)
        {
            Console.WriteLine("Starting Nameserver to redirect all known Minecraft \"Featured Servers\" to " + ip);

            MasterFile masterFile = new MasterFile();
            DnsServer  server     = new DnsServer(masterFile, "8.8.8.8");

            // Resolve these domain to given ip
            masterFile.AddIPAddressResourceRecord("play.inpvp.net", ip);
            masterFile.AddIPAddressResourceRecord("play.lbsg.net", ip);
            masterFile.AddIPAddressResourceRecord("pe.mineplex.com", ip);
            masterFile.AddIPAddressResourceRecord("mco.cubecraft.net", ip);
            masterFile.AddIPAddressResourceRecord("geo.hivebedrock.network", "173.199.115.154");
            masterFile.AddIPAddressResourceRecord("play.galaxite.net", "104.238.130.180");

            // Log every request
            server.Requested += (sender, e) => Console.WriteLine(e.Request);
            // On every successful request log the request and the response
            server.Responded += (sender, e) => Console.WriteLine("{0} => {1}", e.Request, e.Response);
            // Log errors
            server.Errored += (sender, e) => Console.WriteLine(e.Exception.Message);

            // Start the server (by default it listents on port 53)
            Console.WriteLine("Looks like we are all set. Set your Switch's DNS to the IP of this computer!");
            await server.Listen();
        }
        public static (DnsServer, Socket) CreateDNSServer(
            MasterFile masterFile,
            IPAddress defaultDnsServer,
            IPEndPoint localDnsServerBind,
            IPEndPoint localUDPBind,
            Action <Task> action)
        {
            //为什么要包装一下MasterFile
            //主要是因为有的浏览器假如应答的域名是通配符,他会认为DNS无效
            //所以把通配符改为请求中的绝对域名
            //也就是说MasterFile会返回通配符

            DnsServer server = new DnsServer(new LocalRequestResolver(masterFile), defaultDnsServer);

            var task = server.Listen(localDnsServerBind);

            action(task);



            Socket socket = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Dgram, ProtocolType.Udp);

            socket.Bind(localUDPBind);

            socket.Connect(localDnsServerBind);

            return(server, socket);
        }
Example #8
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Starting DNS server");
            _logger.LogInformation($"DNS suffix: {_dnsSuffix}");
            _logger.LogInformation($"Upstream server: {_upstreamDns}");
            _logger.LogInformation($"RBL list: {_rblList}");

            _dnsServer.Listen(_listenPort);
        }
Example #9
0
        public async static Task DNSAsync(string[] Domains, string[] localIPs, List <string> BlackList)
        {
            if (localIPs != null && localIPs.Length > 0)
            {
                // if one wants to use a remote DNS server for requests that cannot be solved:
                // DnsServer server = new DnsServer("8.8.8.8");
                DnsServer server = new DnsServer("0.0.0.0", true);
                MainWindow.dnsServerList.Add(server);

                if (BlackList != null && BlackList.Count > 0)
                {
                    foreach (string blacklistentry in BlackList)
                    {
                        Console.WriteLine(MainWindow.InfoTag + " Redirecting {0} to 0.0.0.0", blacklistentry);
                        MainWindow.AddToLogDNS(String.Format(MainWindow.InfoTag + " Redirecting {0} to 0.0.0.0", blacklistentry));
                        server.MasterFile.AddIPAddressResourceRecord(blacklistentry, "0.0.0.0");
                    }
                }

                foreach (string localIP in localIPs)
                {
                    Console.WriteLine(MainWindow.InfoTag + " DNSAsync localIP: " + localIP);

                    foreach (string domain in Domains)
                    {
                        Console.WriteLine();
                        MainWindow.AddToLogDNS(String.Format(MainWindow.InfoTag + " Redirecting {0} to " + localIP, domain));
                        server.MasterFile.AddIPAddressResourceRecord(domain, localIP);
                    }
                }


                //server.Responded += (request, response) => Console.WriteLine("{0} => {1}", request, response);
                server.Responded += (request, response) => MainWindow.AddToLogDNS(String.Format("{0} => {1}", request, response));
                server.Errored   += (e) =>
                {
                    Console.WriteLine(MainWindow.ErrorTag + ": {0}", e);
                    MainWindow.AddToLogDNS(String.Format(MainWindow.ErrorTag + ": {0}", e));
                    ResponseException responseError = e as ResponseException;
                    if (responseError != null)
                    {
                        Console.WriteLine(responseError.Response);
                    }
                };

                try
                {
                    await server.Listen();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(MainWindow.ErrorTag + " DNSAsync: " + ex.ToString());
                }
            }
        }
Example #10
0
        public static void Main(string[] args)
        {
            Console.WriteLine("downloading whitelist...");
            //DownloadWhiteList();
            Console.WriteLine("download whitelist complete");
            DnsServer server = new DnsServer(new Configer());

            Console.WriteLine("launch dns server.");
            server.Requested += Console.WriteLine;
            server.Responded += (request, response) => Console.WriteLine("{0} => {1}", request, response);
            server.Listen();
        }
Example #11
0
        private async static void RunDnsServer(DnsServer dnsServer)
        {
            try {
                await dnsServer.Listen().ConfigureAwait(false);
            }
            catch (Exception ex) {
                Console.Write(ex);
                return;
            }

            Console.WriteLine("DNS Server shut down.");
        }
Example #12
0
 protected static void DnsThread(object sender, DoWorkEventArgs e)
 {
     Console.WriteLine("DNS Server Started");
     SetDnsRedirects(masterFile);
     try
     {
         ServiceController service = new ServiceController("sharedaccess"); //kill ics service to free dns port 53
         service.Stop();
         Thread.Sleep(1000);
     }
     catch (Exception ex) { Console.WriteLine("DNS - ERROR: " + ex.Message); }
     dnsServer.Listen();
 }
Example #13
0
        public static void Main(string[] args)
        {
            DnsServer server = new DnsServer("8.8.8.8");

            foreach (string domain in args)
            {
                Console.WriteLine("Redirecting {0} to localhost", domain);
                server.MasterFile.AddIPAddressResourceRecord(domain, "127.0.0.1");
            }

            server.Responded += (request, response) => Console.WriteLine("{0} => {1}", request, response);
            server.Listen();
        }
Example #14
0
        static async Task MainAsync()
        {
            MasterFile masterFile = new MasterFile();
            DnsServer  server     = new DnsServer(masterFile, "8.8.8.8");

            server.Listening += (sender, e) => Console.WriteLine("Now listening on port 53");
            server.Responded += (sender, e) => PersistRequest(e.Request);
            server.Errored   += (sender, e) => Console.WriteLine(e.Exception.Message);

            Console.WriteLine("Starting server...");

            await server.Listen();
        }
Example #15
0
        protected static void DnsThread(object sender, DoWorkEventArgs e)
        {
            SetDnsRedirects(masterFile);
            try
            {
                ServiceController service = new ServiceController("sharedaccess"); //kill ics service to free dns port 53
                service.Stop();
                Thread.Sleep(1000);
            }
            catch (Exception) { }

            dnsServer.Listen();
        }
Example #16
0
        static void Main(string[] args)
        {
            DnsServer server = new DnsServer("8.8.8.8");

            server.MasterFile.AddIPAddressResourceRecord("www.index.hu", "127.0.0.1");
            server.MasterFile.AddIPAddressResourceRecord("www.discoveri.hu", "192.168.17.60");


            server.Requested += serverRequested;
            server.Responded += serverResponded;

            server.Listen();

            //this should not display , because the listen function pause the thread....
            Console.WriteLine("DNS server is start... Set your pc to use this server.");
        }
Example #17
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public async Task Listen()
        {
            MasterFile       masterFile         = new MasterFile();
            IRequestResolver tlsRequestResolver = new TlsRequestResolver(new System.Net.IPEndPoint(IPAddress.Parse("1.1.1.1"), 853));
            DnsServer        server             = new DnsServer(tlsRequestResolver);

            server.Responded += (request, response) => Console.WriteLine("{0} => {1}", request, response);
            server.Listening += () => Console.WriteLine("Listening");
            server.Errored   += (e) => {
                Console.WriteLine("Errored: {0}", e);
                ResponseException responseError = e as ResponseException;
                if (responseError != null)
                {
                    Console.WriteLine(responseError.Response);
                }
            };

            await server.Listen();
        }
Example #18
0
        private async static Task Create(IRequestResolver requestResolver, Func <DnsServer, Task> action)
        {
            TaskCompletionSource <object> tcs = new TaskCompletionSource <object>();
            DnsServer server = new DnsServer(requestResolver);

            server.Listening += async() => {
                try {
                    await action(server);

                    tcs.SetResult(null);
                } catch (Exception e) {
                    tcs.SetException(e);
                } finally {
                    server.Dispose();
                }
            };

            await Task.WhenAll(server.Listen(PORT), tcs.Task);
        }
Example #19
0
        private static async Task StartDNServer_Async(IPEndPoint[] updns, IPEndPoint[] puredns, string path, IPEndPoint bindipPoint)
        {
            var server = new DnsServer(new ApartRequestResolver(updns, puredns, path));

            if (Verbose)
            {
                server.Requested += (request) => Console.WriteLine($@"Requested: {request}");
                server.Responded += (request, response) => Console.WriteLine($@"Responded: {request} => {response}");
            }
            server.Listening += () => Console.WriteLine(@"Listening:");
            server.Errored   += (e) =>
            {
                Console.WriteLine($@"Errored: {e}");
                if (e is ResponseException responseError)
                {
                    Console.WriteLine(responseError.Response);
                }
            };
            await server.Listen(bindipPoint);
        }
Example #20
0
        static void F()
        {
            // Proxy to google's DNS
            MasterFile masterFile = new MasterFile();
            DnsServer  server     = new DnsServer(masterFile, "8.8.8.8");

            // Resolve these domain to localhost
            masterFile.AddIPAddressResourceRecord("google.com", "127.0.0.1");
            masterFile.AddIPAddressResourceRecord("github.com", "127.0.0.1");

            // Log every request
            server.Requested += (sender, e) => Console.WriteLine(e.Request);
            // On every successful request log the request and the response
            server.Responded += (sender, e) => Console.WriteLine("{0} => {1}", e.Request, e.Response);
            // Log errors
            server.Errored += (sender, e) => Console.WriteLine(e.Exception.Message);

            // Start the server (by default it listens on port 53)
            server.Listen();
        }
Example #21
0
        public static void MainAsync()
        {
            // Proxy to google's DNS
            var server = new DnsServer("8.8.8.8");

            // Resolve these domain to localhost
            server.MasterFile.AddIPAddressResourceRecord("query.hicloud.com", Program.Configuration.RedirectIP);

            //server.Requested += (request) => Console.WriteLine(request);
            // On every successful request log the request and the response
            server.Responded += (request, response) => Console.WriteLine("{0}", request.Questions.First());
            // Log errors
            server.Errored += (e) => Console.WriteLine(e.Message);

            Console.WriteLine("DNS server started");

            // Start the server (by default it listents on port 53)
#pragma warning disable 4014
            server.Listen();
#pragma warning restore 4014
        }
Example #22
0
        public async static Task MainAsync()
        {
            DnsServer server = new DnsServer("8.8.8.8");

            server.Requested += (request) => Console.WriteLine("Requested: {0}", request);
            server.Responded += (request, response) => Console.WriteLine("Responded: {0} => {1}", request, response);
            server.Errored   += (e) => Console.WriteLine("Errored: {0}", e.Message);

            server.MasterFile.AddIPAddressResourceRecord("google.com", "127.0.0.1");

            #pragma warning disable 4014
            server.Listen(PORT);
            #pragma warning restore 4014

            await Task.Delay(1000);

            DnsClient client = new DnsClient("127.0.0.1", PORT);

            await client.Lookup("google.com");

            await client.Lookup("cnn.com");

            server.Dispose();
        }
Example #23
0
        public async static Task MainAsync()
        {
            MasterFile masterFile = new MasterFile();
            DnsServer  server     = new DnsServer(masterFile, "8.8.8.8");

            masterFile.AddIPAddressResourceRecord("google.com", "127.0.0.1");

            server.Requested += (request) => Console.WriteLine("Requested: {0}", request);
            server.Responded += (request, response) => Console.WriteLine("Responded: {0} => {1}", request, response);
            server.Errored   += (e) => Console.WriteLine("Errored: {0}", e.Message);
            server.Listening += () => Console.WriteLine("Listening");

            server.Listening += async() => {
                DnsClient client = new DnsClient("127.0.0.1", PORT);

                await client.Lookup("google.com");

                await client.Lookup("cnn.com");

                server.Dispose();
            };

            await server.Listen(PORT);
        }
Example #24
0
        public static void Main(string[] args)
        {
            DnsServer server = null;

            (new Thread(() => {
                server = new DnsServer("8.8.8.8");

                server.Requested += (request) => Console.WriteLine("Requested: {0}", request);
                server.Responded += (request, response) => Console.WriteLine("Responded: {0} => {1}", request, response);

                server.MasterFile.AddIPAddressResourceRecord("google.com", "127.0.0.1");

                server.Listen();
            })).Start();

            Thread.Sleep(1000);

            DnsClient client = new DnsClient("127.0.0.1");

            client.Lookup("google.com");
            client.Lookup("cnn.com");

            server.Close();
        }
Example #25
0
 public Task StartAsync(CancellationToken cancellationToken)
 {
     _listenTask = _server.Listen(_ipEndPoint);
     return(Task.CompletedTask);
 }
Example #26
0
 public void Start()
 {
     _server.Listen(_defaultDnsPort, IPAddress.Parse(_options.Value.ListenAddress));
     _logger.LogInformation($"Service has been started {_options.Value.ListenAddress}:{_defaultDnsPort}");
 }
Example #27
0
        public async static Task DNSAsync(string[] Domains, string localIP, List <string> BlackList, string DNSForwardingServer)
        {
            if (!String.IsNullOrEmpty(localIP))
            {
                // if one wants to use a remote DNS server for requests that cannot be solved:
                // DnsServer server = new DnsServer("8.8.8.8");
                string ForwardingIP = "0.0.0.0";

                if (!String.IsNullOrEmpty(DNSForwardingServer))
                {
                    IPAddress ForwardingIPAddress;
                    IPAddress.TryParse(DNSForwardingServer, out ForwardingIPAddress);
                    if (ForwardingIPAddress != null)
                    {
                        ForwardingIP = ForwardingIPAddress.ToString();
                    }
                }

                bool RedirectUnknownToLocal = true;
                if (!MainWindow.Instance.AppSettings.DNSLocalOnly)
                {
                    RedirectUnknownToLocal = false;
                }

                DnsServer server = new DnsServer(ForwardingIP, MainWindow.Instance.AppSettings.DNSLocalOnly, RedirectUnknownToLocal);

                server.LocalIP = localIP;
                MainWindow.dnsServerList.Add(server);

                if (BlackList != null && BlackList.Count > 0)
                {
                    foreach (string blacklistentry in BlackList)
                    {
                        Console.WriteLine(MainWindow.InfoTag + " Redirecting {0} to 0.0.0.0", blacklistentry);
                        MainWindow.AddToLogDNS(String.Format(MainWindow.InfoTag + " Redirecting {0} to 0.0.0.0", blacklistentry));
                        server.MasterFile.AddIPAddressResourceRecord(blacklistentry, "0.0.0.0");
                    }
                }



                Console.WriteLine(MainWindow.InfoTag + " DNSAsync localIP: " + localIP);

                foreach (string domain in Domains)
                {
                    Console.WriteLine();
                    MainWindow.AddToLogDNS(String.Format(MainWindow.InfoTag + " Redirecting {0} to " + localIP, domain));
                    server.MasterFile.AddIPAddressResourceRecord(domain, localIP);
                }

                //server.Responded += (request, response) => Console.WriteLine("{0} => {1}", request, response);
                //server.Responded += (request, response) => MainWindow.AddToLogDNS(String.Format("{0} => {1}", request, response));
                server.Responded += (request, response) => MainWindow.AddToLogDNS(String.Format("{0} => {1}", DNS.Protocol.Utils.ObjectStringifier.Stringify(request.Questions), DNS.Protocol.Utils.ObjectStringifier.Stringify(response.AnswerRecords)));
                server.Errored   += (e) =>
                {
                    Console.WriteLine(MainWindow.ErrorTag + ": {0}", e);
                    MainWindow.AddToLogDNS(String.Format(MainWindow.ErrorTag + ": {0}", e));
                    ResponseException responseError = e as ResponseException;
                    if (responseError != null)
                    {
                        Console.WriteLine(responseError.Response);
                    }
                };

                try
                {
                    await server.Listen();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(MainWindow.ErrorTag + " DNSAsync: " + ex.ToString());
                }
            }
        }
Example #28
0
 protected override void OnStart(string[] args)
 {
     _server.Listen();
 }