I am learning about how Windows does name resolution and need to know how Android does it so an app will work on my Windows laptop and from my Android Phone.
- The client checks to see if the name queried is its own.
- The client then searches a local Hosts file, a list of IP address and names stored on the local computer.
- Domain Name System (DNS) servers are queried.
- If the name is still not resolved, NetBIOS name resolution sequence is used as a backup. This order can be changed by configuring the NetBIOS node type of the client.
dnsmasq to provide local DNS resolution so I can map my own made up hostnames to local LAN IP addresses. This also allows me to see, in the
dnsmasq log file, the DNS query that goes from the client to the DNS server. While testing the website from my phone I could swear using the URL address
http://mywebsite in a Chrome browser on the phone was loading the website and the
dnsmasq log showed just that unqualified name -
mywebsite - resolving to the desired local IP address the web server is at.
However that was a few days ago, now the
dnsmasq log always shows that the DHCP server DNS suffix [home] has been appended. So I see
mywebsite.home in the
dnsmasq log even though I used the URL address
http://mywebsite in the phones Chrome browser. I didn't change anything with the phone. It is still set up to get its IP address via DHCP, in practice it never changes.
So my questions are:
- How does Android OS resolve domain names to IP addresses - what things does it try and in what order?
- Any feedback on why Android seemed to be resolving the unqualified hostname in my browser originally without any DNS suffix being appended. But now the
[home]suffix is always appended as reported in the
After some more testing I have again seen the scenario where the webpage
http://mymovies loads from the Android phone but the
dnsmasq log appears to show the name resolution happening on an unqualified domain name (bare hostname:
x's are my redacted routers public IP address.
Can anyone explain what
dnsmasq is doing here?
Starting from 02:07:22 it initially seems to try resolving the name
mymovies.home. This makes sense because the phones IP is dynamically allocated by the DHCP server and I can see on my laptop that the DHCP server sends the DNS suffix
[home] as the connection-specific DNS suffix so it must be doing the same to the phone I guess?
The reason why it fails here is because I do not have an entry for
dnsmasq.conf - I commented it out. I DO have an address entry for
dnsmasq.conf and that seems to be why it can resolve
mymovies to an IP address.
Is this a difference of name resolution in Android compared with Windows - that eventually Android OS WILL try to resolve an unqualified domain name (bare hostname) to an IP address?