A funcionalidade que você está procurando é implementada na glibc. Você pode definir um arquivo de hosts personalizados definindo a variável de ambiente HOSTALIASES
. Os nomes neste arquivo serão coletados por gethostbyname
(consulte documentação ).
Exemplo (testado no Ubuntu 13.10):
$ echo 'g www.google.com' >> ~/.hosts
$ export HOSTALIASES=~/.hosts
$ wget g -O /dev/null
Algumas limitações:
-
HOSTALIASES
só funciona para aplicativos que usamgetaddrinfo(3)
ougethostbyname(3)
- Quando setuid é usado, a libc limpa o ambiente, o que significa que a configuração
HOSTALIASES
é perdida. ping é root setuid (porque ele precisa escutar pacotes ICMP), entãoHOSTALIASES
não funcionará com ping a menos que você já esteja root antes de chamar ping.