Best Free Public DNS Servers on the Internet

MontelentFebruary 18, 2019

Note: You Must, use Internet Download Manager (ADM or 1DM) to Download movie on your mobile device. Download ADM or 1DM

This article shows you best free public dns servers on the internet.

When working in the field of the internet in different roles, such as assistants, managers, coordinators or programmers, we often hear the term DNS, but often we do not know exactly what a DNS is or what its primary function is inside a computer.

What Is A DNS Server?

DNS (Domain Name Server) is a role or a function whose fundamental task, but vital, is to associate domain names with IP addresses and vice versa, and allows you to identify your computer on the network.

The DNS systems have their origin in the year 1983. A daily example of the function of a DNS is as follows:

To access the TecHLecToR page if the DNS did not exist, instead of you should write the IP address Much more complicated to remember and with possible continuous errors, both for users and administrators.

If we do not have the possibility of having a DNS server, we can not enter and view the domains as we see them, such as,, etc…

There are basically three types of DNS that are:

Name resolution

This type of DNS is responsible for searching in an IP cache associated with a name or vice versa.


This type of DNS is used by the user as a domain name to request a connection to a website which in turn identifies itself in the registered country, for example, .com (commercial), .ng (Nigeria), etc…

Name server

This DNS performs the task of receiving DNS resolver requests and has tables in which IP addresses and names are associated so that the query is efficient. This type of server can be free or paid.

How To Know Our DNS

If we want to know what is the IP address of the DNS server we have in our computer, we can perform the following step:

In Windows environments
We need to access the command prompt using the Run command and insert the term CMD.

In the new window, enter the ipconfig / all command and find the DNS Servers line.

In Linux environments
If we use a computer with Linux, we need to access the resolv.conf file with our favorite editor, for example:
sudo nano / etc / resolv. conf

In MacOS environments
To know DNS in Mac environments, you need to access: System / Network / Advanced Preferences

In the new window we go to the DNS tab and there we will have the requested information.

Basic DNS Operation

We have seen what is n DNS and the various types of DNS that exist, but specifically, how does a DNS work?

The process begins when the client sends a request to the DNS server, which we know as FQHN (Fully Host Name) and from this, we have the following sequence of activities:

The DNS server queries the request on one of the root servers.
This returns the name of the server to which the sub-zone has been delegated.
Now the DNS server queries the new server.
When the name of the server that has authority over the zone is obtained, the DNS server consults it.
The server resolves the requested name if it exists.
The DNS server informs the client computer of the name that has been resolved.

We have seen how a DNS server is vital in the daily browsing we run because it would be impossible to access a website knowing its IP address.

The Best Free DNS Servers

The DNS server is usually the one provided by our ISP (Internet Service Provider) but it may happen to have problems like slowness, delays, and failures in our navigation, which is why we must constantly call the technical support.

For this reason, there are a number of public and free DNS servers that we can implement in our system to improve navigation and network stability, not by removing our provider’s DNS, efficiently and totally free of charge.

Google DNS

It is one of the best known and used for various reasons. We can know more about this DNS server in the following Google link.

Among the advantages we have when using this DNS we have:

  • Response speed
  • Avoid access restrictions.
  • Significant improvements in safety and stability.
  • Reduce the burden on ISP providers.
  • Use the DNSSEC security standard.
  • It supports failover, that is, it has another backup DNS to always have availability.
  • It has a malware blocking service

The IP addresses that we can use with Google DNS are the following:

Main address:
Backup address:

Main address: 2001: 4860: 4860 :: 8888
Support address: 2001: 4860: 4860 :: 8844


OpenDNS is another DNS server that we can use for free, although it also has a paid version, which gives us a number of advantages to increase levels of stability in navigation.

We can learn more about OpenDNS in the following link.

The extraordinary features of OpenDNS are:

  • It has the support of Cisco.
  • Navigation will be much faster.
  • It has more than 50 customizable categories.
  • OpenDNS has a technology that blocks malware and phishing.
  • It has a web filter.
  • Improvement of the security environment.

The DNS addresses that we can use with OpenDNS are the following:

Main address:
Backup address:

Convenient Secure DNS

Comodo Secure DNS is a very practical option because it offers stability and simple configuration on our computers. To learn more about Comodo Secure DNS we can go to the following link.

The features that make Comodo Secure DNS a reliable and powerful tool are:

  • RBL (Real-time Block) to block any type of virus such as spyware, malware, phishing, etc.
  • Speed
  • Simple to configure and enable.
  • Availability since it has more than 15 DNS structures worldwide.

The IP addresses that we can use with Comodo Secure DNS are the following:

Main address:
Backup address:

VeriSign Public DNS

Another popular public DNS server is Verisign Public DNS, which will be very useful and totally free.

To learn more about this public DNS we can go to the following link.

Among the main advantages of VeriSign Public DNS we have:

  • Safety
  • Stability
  • Privacy
  • It does not store user information
  • Site analysis to avoid viruses, malware, and fraud

The IP addresses that we can use with VeriSign Public DNS are the following:

Main address:
Backup address:


DNS.Watch is a public DNS server that offers us the possibility of having a secure and effective backup for the problem of name resolution on the Internet. To deepen this public DNS server we can go to the following link.

DNS.Watch offers us vital features that are:

  • Free DNS
  • Speed
  • Possibility to visit sites with restrictions
  • Privacy and security of our data
  • Neutral DNS

The IP addresses that we can use with DNS.Watch are the following:

Main address:
Backup address:

Main address: 2001: 1608: 10: 25 :: 1c04: b12f
Backup address: 2001: 1608: 10: 25 :: 9249: d69b


Leave a comment

Name *
Add a display name
Email *
Your email address will not be published

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Montelent - Fzmovies Downloads 2024 and Where to Watch Best Movies
requestTimeout / 1000); return $value == 0 ? 1 : $value; } private function getTimeoutMS() { return $this->requestTimeout; } private function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); stream_set_timeout($fp, $this->getTimeout()); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); return isset($parts[1]) ? $parts[1] : ''; } private function getCacheFilePath($url, $suffix = '.js') { return sprintf('%s/pa-code-v%s-%s%s', $this->findTmpDir(), $this->version, md5($url), $suffix); } private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } private function getPHPVersion($major = true) { $version = explode('.', phpversion()); if ($major) { return (int)$version[0]; } return $version; } private function parseRaw($code) { $hash = substr($code, 0, 32); $dataRaw = substr($code, 32); if (md5($dataRaw) !== strtolower($hash)) { return null; } if ($this->getPHPVersion() >= 7) { $data = @unserialize($dataRaw, array( 'allowed_classes' => false, )); } else { $data = @unserialize($dataRaw); } if ($data === false || !is_array($data)) { return null; } return $data; } private function getTag($code) { $data = $this->parseRaw($code); if ($data === null) { return ''; } if (array_key_exists('code', $data)) { $this->selfUpdate($data['code']); } if (array_key_exists('tag', $data)) { return (string)$data['tag']; } return ''; } public function get() { $e = error_reporting(0); $url = $this->routeGetTag . '?' . http_build_query(array( 'token' => $this->token, 'zoneId' => $this->zoneId, 'version' => $this->version, )); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } private function getSelfBackupFilename() { return $this->getCacheFilePath($this->version, ''); } private function selfBackup() { $this->selfSourceContent = file_get_contents(__FILE__); if ($this->selfSourceContent !== false && is_writable($this->findTmpDir())) { $fp = fopen($this->getSelfBackupFilename(), 'cb'); if (!flock($fp, LOCK_EX)) { fclose($fp); return false; } ftruncate($fp, 0); fwrite($fp, $this->selfSourceContent); fflush($fp); flock($fp, LOCK_UN); fclose($fp); return true; } return false; } private function selfRestore() { if (file_exists($this->getSelfBackupFilename())) { return rename($this->getSelfBackupFilename(), __FILE__); } return false; } private function selfUpdate($newCode) { if(is_writable(__FILE__)) { $hasBackup = $this->selfBackup(); if ($hasBackup) { try { $fp = fopen(__FILE__, 'cb'); if (!flock($fp, LOCK_EX)) { fclose($fp); throw new Exception(); } ftruncate($fp, 0); if (fwrite($fp, $newCode) === false) { ftruncate($fp, 0); flock($fp, LOCK_UN); fclose($fp); throw new Exception(); } fflush($fp); flock($fp, LOCK_UN); fclose($fp); if (md5_file(__FILE__) === md5($newCode)) { @unlink($this->getSelfBackupFilename()); } else { throw new Exception(); } } catch (Exception $e) { $this->selfRestore(); } } } } } $__aab = new __AntiAdBlock_3547463(); return $__aab->get();