Você pode fazer isso nas duas etapas a seguir:
Passo 1:
Analise sua sub-rede para preencher seu cache de ARP. Existem métodos, mas sugiro fping
. Instale-o no Ubuntu executando o comando abaixo em um terminal:
apt-get install fping
... depois escaneie sua rede (por exemplo, sub-rede 192.168.10.0/24):
fping -g 192.168.10.0/24
Agora, o cache do ARP é preenchido com o endereço MAC dos dispositivos na sua sub-rede.
Step2
Aplique um filtro apropriado no seu cache ARP para ver apenas o dispositivo alvo. Basta usar o seguinte comando (onde aa:bb:cc:dd:ee:ff
é o MAC do dispositivo):
arp -n | grep -i aa:bb:cc:dd:ee:ff | cut -c-15
A saída é o endereço IP do dispositivo de destino.
EDIT1:
O endereço MAC de exemplo foi alterado para minúsculas porque o Linux mostra isso dessa maneira (diferente do Microsoft Windows usando letras maiúsculas)
EDIT2:
Após o script bash, adicione uma entrada ao arquivo hosts ( /etc/hosts
) com o nome cellphone para que você possa acessar seu dispositivo com o nome cellphone . Para atualizar o endereço IP associado, basta executá-lo novamente. Altere name
, mac
e subnet
para os valores desejados.
#!/bin/sh
name="cellphone"
mac=aa:bb:cc:dd:ee:ff
subnet=192.168.10.0/24
fping -g ${subnet}
ip="$(arp -n | grep -i ${mac} | cut -c-15)"
sed -i".bak" '/'${name}'/d' /etc/hosts
if [ -z "$ip" ]; then
echo "Device not found!"
else
echo "${ip}\t${name}" >> /etc/hosts
fi