Como descubro o endereço MAC das máquinas em uma rede?
Preciso descobrir as máquinas que estão disponíveis apenas com o BIOS instalado (sem sistema operacional).
E preciso encontrar o endereço MAC das máquinas que estão funcionando.
networking
tcp
bios
mac-address
Peter Mortensen
fonte
fonte
Respostas:
Você precisará acessar as informações disponíveis em seus comutadores gerenciados. Se você tem uma rede não gerenciada, não vejo uma maneira de fazer isso.
Isso pressupõe que os computadores de destino sejam capazes de ativar a LAN (WoL). Nesse caso, é estabelecido um link para o servidor (procure o LED de link intermitente) e a placa de rede está ouvindo as transmissões de WoL. AFAIK, o cartão não responde a nada nesse estado. Se não houver WoL, é provável que a placa esteja desligada (sem LED de link) e não funcionará.
fonte
Se as máquinas não estiverem ligadas, isso é impossível.
Se eles estiverem energizados, eu acho que isso também é impossível, pois você precisa de uma pilha de rede mínima para responder pelo menos a coisas como consultas ARP etc., que não funcionam sem um sistema operacional instalado.
O que pode funcionar (não sei e não posso testar agora) é que a NIC e o switch se comunicam quando a NIC é conectada ou ligada e o switch aprende o endereço MAC dessa maneira. Se for esse o caso, você precisaria de um comutador gerenciável e consultaria-o quanto a endereços MAC conectados.
fonte
Você pode usar o Nmap para fazer uma verificação ARP muito rápida usando a seguinte sintaxe.
Isso usa o ping do ARP (apenas solicitações do ARP, sem ICMP, UDP ou TCP, sem varredura de porta) para varrer o intervalo de endereços IP especificado e registrar as respostas do endereço IP / endereço MAC / nome do host em um arquivo XML (nmap.xml).
Eu escrevi um script do PowerShell que mescla o arquivo XML e cospe um arquivo CSV . Isso também filtra os hosts inativos. Acho isso mais fácil de usar no Excel do que o arquivo XML. Aqui está o script, se alguém estiver interessado.
fonte
Scantype n not supported
. Aparentemente, o sinalizador-sn
não é suportado no Nmap 4.x.(No comando Cisco Switch é
show mac-address-table
).fonte
Em uma máquina Unix, ouvindo os computadores sem SO na mesma LAN e, se possível, através de um hub (não de um switch), você pode tentar
Você também pode tentar
wireshark
(de uma máquina com sistema operacional). Novamente, é melhor usar um hub para capturar qualquer comunicação das máquinas BIOS, incluindo transmissões.fonte
O problema básico aqui é que essas são as informações da Camada 2, portanto, somente os comutadores as veem. Alguns switches fornecerão uma interface que permite que você espreite essas informações, mas se elas não conseguirem, é a única maneira de interceptar na camada física, instalando, por exemplo, um hub entre os switches.
Se você estiver usando comutadores gerenciados, é provável que essas informações estejam disponíveis no comutador. Alguns roteadores / switches integrados para o usuário final (como o que geralmente empacota modems ADSL também) às vezes têm uma lista de clientes DHCP que inclui endereços MAC.
Se você estiver usando comutadores não gerenciados e realmente quiser saber essas informações, recomendo que você compre um hub e substitua temporariamente o comutador por ele. Em seguida, você pode conectar um computador executando o wireshark ao hub e capturar pacotes ARP para registrar endereços MAC. Como alternativa, você pode usar o Echolot para fazer isso por você - ele rastreia seletivamente pacotes ARP e cria um banco de dados de endereços MAC.
fonte
Aqui está uma solução que funcionou para mim:
fonte
Um pequeno truque muito fácil que você pode fazer em 2 segundos é trabalhar com o fato de que qualquer sistema operacional grava uma tabela com o endereço MAC e IP de qualquer dispositivo com o qual ele interaja. Isso é conhecido como ARP TABLE. Então a questão é como forçar uma interação com todos os dispositivos? Você pode simplesmente executar ping no endereço IP de broadcast. Isso não é perfeito, pois alguns dispositivos ou firewall podem bloquear a solicitação de ping do ICMP, mas funciona em muitos cenários.
Os comandos são (em um endereço de broadcast ipv4 192.168.0.255):
No uso do Linux:
Aguarde alguns segundos para os dispositivos responderem e faça:
Para ping IPV6, veja o comentário de Giedrius Rekasius
Não é perfeito, mas não há ferramentas, nenhuma pesquisa, nenhuma perda de tempo, funciona em todos os principais sistemas operacionais e é rápido.
fonte
ping6 -c2 -n ff02::1%wlan0
. Só é necessário atualizar o nome da interface de rede a ser usada, o endereço IP a ser usado para essa finalidade é sempre,ff02::1
independentemente da rede em que você estiver.Examine a rede com o Nmap e verifique a tabela ARP (
arp -a
nas distribuições do Linux).fonte
Como já foi dito, se você possui comutadores não gerenciados ou o BootP / PXE, não há maneira fácil de obter os MACs de máquinas sem SO.
Se suas máquinas em execução estiverem executando janelas, é fácil criar scripts (geralmente via WMI)
Existem vários exemplos aqui: http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f[0orgeous.Type=SearchText&f[0orgeous.Value=MAC+address&x=0&y= 0 0
fonte
Eu sugeriria mudar a tabela de endereços MAC, mas alguém já cobriu a tabela acima.
Se algum dos computadores estiver executando um sistema operacional e tiver endereços IP, você poderá conectar-se à mesma LAN, poderá usar o NMAP (ou uma versão da GUI como o Zenmap) em http://nmap.org/ ... se executar Na mesma LAN, você deve obter informações de endereço MAC para todas as máquinas que responderem.
Seria útil entender mais sobre por que você precisa obter os endereços MAC, caso haja uma maneira melhor de obter o mesmo resultado.
fonte
Você pode coletar informações do ARP com, por exemplo, um arpalert em execução contínua. Com isso, você terá o conjunto de endereços ARP visto após o início.
Máquinas desligadas não enviarão respostas ARP.
Para acelerar o processo, você pode usar uma verificação de nmap ping (nmap -sP) na rede a partir do servidor em que está executando o arpalert, a fim de acionar todos os hosts possíveis (ativos e em execução) para responder à sua consulta arp. Com a execução do nmap ping scan regularmente mais tarde, você tem melhores chances de pegar um host em breve.
snippet do arpalert:
trecho do nmap:
Olhe por aqui:
fonte
Eu uso: nmap -sP 192.168.1.1/24
(substitua 192.168.1.1/24 pelo seu intervalo de IPs)
Ele mostrará apenas as máquinas ativadas e fornecerá algo como:
Se você não possui um sistema operacional instalado, pode usar um live cd do linux, o nmap provavelmente está disponível na maioria deles
fonte