Você pode ter melhor sorte usando a ferramenta arping
. A ferramenta ping
funciona no nível da camada 3 do modelo OSI , enquanto que arping
na camada 2.
Você ainda precisa conhecer o IP do sistema, no entanto, com esta ferramenta. Existem duas versões, a padrão incluída na maioria dos Unixes (de Alexey Kuznetsov) é a versão que pode lidar apenas com endereços IP. A outra versão (de Thomas Habets) supostamente pode consultar usando endereços MAC.
$ sudo arping 192.168.1.1 -c 1
ARPING 192.168.1.1 from 192.168.1.218 eth0
Unicast reply from 192.168.1.1 [00:90:7F:85:BE:9A] 1.216ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
arping
funciona de maneira semelhante a, ping
exceto em vez de enviar pacotes ICMP, ele envia pacotes ARP.
Obtendo o IP de um sistema usando apenas o MAC
Aqui estão alguns métodos para fazer a pesquisa inversa de MAC para IP.
nmap
$ nmap -sP 192.168.1.0/24
Em seguida, procure no computador arp a máquina correspondente arp -an
.
fping
$ fping -a -g 192.168.1.0/24 -c 1
Em seguida, procure no seu cache arp, o mesmo que acima.
ping
$ ping -b -c1 192.168.1.255
Em seguida, procure no seu cache arp, o mesmo que acima.
nbtscan (somente hosts do Windows)
$ nbtscan 192.168.1.0/24
Doing NBT name scan for addresses from 192.168.1.0/24
IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
192.168.1.0 Sendto failed: Permission denied
192.168.1.4 MACH1 <server> <unknown> 00-0b-12-60-21-dd
192.168.1.5 MACH2 <server> <unknown> 00-1b-a0-3d-e7-be
192.168.1.6 MACH3 <server> <unknown> 00-21-9b-12-b6-a7
arping
pode tomar um endereço MAC como um parâmetro:arping -c 5 38:e7:d8:63:5e:a6
arping
para um endereço MAC: Sim, existem duas implementações do arping 1. do Linux iputils 2. arping por Thomas Habets . --- Somente a 2. implementação pode executar ping em um endereço MAC, mas esse ping é muito complicado: a máquina pingada ainda precisa ter o TCP / IP configurado (pelo menos um endereço IP) e deve poder responder a um ping para um endereço IP de broadcast.Você não pode executar ping em uma NIC normal porque a NIC sozinha não envia nenhuma resposta.
Somente um computador em execução pode enviar respostas
As placas de interface de rede normais não enviam respostas por si mesmas. Eles sempre precisam de um software em execução no computador para fazer isso.
Quando a CPU do computador está desligada, não há software em execução que envie uma resposta a um ping.
Wake-on-LAN é unidirecional
A ativação na LAN permite que o computador permita que apenas a NIC seja parcialmente ligada para receber quadros Ethernet e procure a sequência mágica de ativação neles, mas a NIC ainda não enviará nenhuma resposta. Wake-on-LAN é estritamente unidirecional. Não há respostas enviadas.
Exceções
Existem certas NICs especiais que podem enviar respostas por si próprias, como por exemplo as que implementam uma descarga completa do handshake TCP .
fonte
O
ether-wake
comando funcionará por endereço MAC, então você (a) não precisará de um endereço IP e (b) poderá enviar o comando sem causar danos (se já estiver acordado, acordar não terá impacto?)Você pode ver a lista do seu cache arp existente usando
arp -an
e grepping no seu MAC para obter o IP do host de destino. No entanto, como o arp é um cache, ele pode ter sido "atingido o tempo limite" do cache (e ainda estar 'ativo'). Talvez você precise usar um método de força bruta para descobrir seu IP, como:(e procure 00: 0c: 0d: ef: 02: 03) - desde que os firewalls e outras coisas do tipo não atrapalhem!
fonte
ether-wake
não o cheguem). Na verdade, eu teria acesso a outro host no local, colocaria a máquina de destino em suspensão e tentariaether-wake
. Pela natureza de como funciona WOL, o pedido terá de ser enviado na mesma sub-rede como o anfitrião de qualquer maneiraMeu aplicativo era um servidor RSYNCing em uma estação de trabalho para obter o diretório Document da estação de trabalho ... mas a estação de trabalho não tinha um endereço IP garantido, mas possuía um endereço MAC conhecido (o endereço IP era feito pelo DHCP). esse código usa apenas ping.
fonte
Aqui está um script simples para executar ping através do endereço mac. Basta salvar e executar, por exemplo
macping aa:bb:cc:dd:ee:ff
Você também pode encadear o resultado em série para fazer outras coisas condicionalmente, por exemplo:
-
fonte
Isso não depende de versões diferentes do arping nem de scripts complexos do bash:
Eu usei o arp-scan em vez do arp, pois parece correr muito mais rápido.
fonte