Não, você não pode ter um arquivo / etc / hosts por usuário, nem nada parecido com /home/user1/.hosts, etc.
Você está usando o gethostbyaddr que é codificado para seguir as instruções em nsswitch.conf, que em si diz ao gethostbyaddr para procurar em / etc / hosts.
Você pode fazer algo como adicionar mais IPs de loopback na rede 127.0.0.0/8, como 127.0.0.2, 127.0.0.3, 127.1.2.3 e, em seguida, atribuir um nome de host local a um desses locais IPs. Fizemos isso em um trabalho, mas lembro que isso realmente confundiu nossos engenheiros.
Além disso, se bem me lembro, alguns loadbalancers realmente fazem isso internamente.
Aqui está um exemplo de / etc / hosts para ilustrar meu ponto:
127.0.0.1 u1.localhost u1
127.0.0.2 u2.localhost u2
# And if you wanted QA servers on the same host, add them to 127.0.8.0/24
127.0.8.1 qa1.localhost qa1
Como o @blacklotus sugeriu anteriormente, a maneira mais comum de fazer isso é designar parte de sua rede local como uma "LAN do desenvolvedor".