Por que você não configura o endereço IP privado estático em seu roteador adicionando os endereços MAC do seu dispositivo em vez de usar seu roteador como DHCP? Se você fizer isso, você terá certeza de que eles não vão errar em nomes de host mais. Por outro lado, você pode adicionar linhas ao seu /etc/hosts
se não estiver configurando hosts no roteador ou se o seu roteador não suportar mais detalhes. Você pode ter seu /etc/hosts
como o seguinte:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost Mac1
255.255.255.255 broadcasthost Mac1
::1 localhost Mac1
fe80::1%lo0 localhost Mac1
172.16.11.43 Mac2
172.16.11.43 Mac3
172.16.11.43 Mac4
172.16.11.43 Mac5
.
.
.
Não é grande coisa, a razão pela qual o seu script está errado depende da sua configuração de rede, não do script ou mesmo dos dispositivos Mac. Você poderia ter escrito seu roteiro muito mais fácil, mas está tudo bem. Basta verificar sua rede e tentar configurar as coisas estaticamente para que elas possam se encontrar.
O motivo pelo qual eles falham é que eles não estão usando endereços IP estáticos públicos; portanto, você deve configurar os privados corretos e estáticos para que eles possam resolver nomes de host.
BTW, se você quiser que seu script continue mesmo que um nome de host não seja resolvido, a outra opção que pode ajudá-lo é usar e adicionar continue
em seu loop e em instruções condicionais. Então, se ele puder resolver o X, ele verificará se ele está ativo por mais de 7 dias ou menos, e se não puder, continuará a verificar o próximo nome de host e anunciará que o X está desativado. Você tem muitas opções, mas como mencionado anteriormente, o problema não é seu companheiro de script. Boa sorte.