Normally IP adress resolving is done via dedicated name services like dnsmasq, bind etc.
The local hosts file /etc/hosts is generally only used if you have a small internal network - listing all internal hosts and their respectives ip addresses; otherwise it should just contain your server's local name (and localhost).
One solution to your question could be to use your server's name in different subdomains, e.g.
master.internal.example.com; now to address master from the external network you have to make external.example.com your primary search domain in
# /etc/resolv.conf at external host
search external.example.com example.com
# /etc/resolv.conf at internal host
search internal.example.com example.com
(asssuming you have a nameserver at ns.example.com)
In each zone file for .external. and .internal.example.com the hostname points to the respective ip address
# zonefile external network
master IN A 126.96.36.199
# zonefile internal network
master IN A 10.11.82.40
This way you can use
curl http://master/ within each network without bothering with FullQualifiedDomainNames.