Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Obter IP e MAC Address da rede inteira salvando em log
Linux user
Publicado por Reiarmor em 12/03/2010

Login: reiarmor, 7918 pontos
[ Hits: 5412 ]

Obter IP e MAC Address da rede inteira salvando em log

Após quebrar a cabeça e testar várias opções mirabolantes para obter todos os IPs, nomes e MACs da rede, cheguei ao seguinte resultado, utilizando nmap e egrep:

$ sudo nmap -sP 192.168.1-10.1-255 | egrep -i '(Host|MAC)' >> ipmac.txt

Observações:
  • -sP - para efetuar somente um ping com o nmap
  • egrep -i - procura no resultado do comando nmap em maiúsculas ou minúsculas os nomes Host e MAC
  • >> ipmac.txt - salva o resultado do comando em um arquivo

O que não consegui foi salvar o resultado do comando com o host e o MAC em uma mesma linha e testar esta opção para também procurar em hosts com o firewall ativado.

Espero ter ajudado.


Outras dicas deste autor
Nenhuma dica encontrada.

Leitura recomendada
   Dica Linux recomendada Quem se logou no seu sistema
   Dica Linux recomendada Montando dispositivos
   Dica Linux recomendada Vídeo-tutoriais de Linux básico
   Dica Linux recomendada Copiando arquivos com a estrutura de diretórios
   Dica Linux recomendada Listando os últimos comandos executados no bash

Comentários
[1] Comentário enviado por valdineisantos em 12/03/2010 - 12:02h:

Ficou bacana o seu script. Agora quanto a colocar tudo em um linha deve ser tranquilo fazer em shell puro ou mesmo com awk... mas como estou migrando essas ações simples para python até porque python é bem mais facil e bonito segue o que você queria.

=================================
#! /bin/env python
#!-*- coding: utf-8 -*-

from commands import getstatusoutput

logFile='ipmac.txt'

nets='192.168.200.1-255'

command="sudo nmap -sP %s | egrep -i '(Host|MAC)' >> %s" % (nets, logFile)

status, output = getstatusoutput(command)

newLines = ''
if int(status) == 0:
print 'ok'
for line in file(logFile).readlines():
if 'Host ' in line:
newLines += line.rstrip()+" "
else:
newLines += line.strip()+"\n"
else:
print "Problema com o comando nmap"
print output

FILE = open(logFile, 'w')
FILE.writelines(newLines)
FILE.close()
=============================
Se o vol não respeitar as identações não vai funcionar. Veja aqui http://pastebin.com/W4gXkM2K este é funcional

Valdinei dos Santos
http://valdineidossantos.com/
http://twitter.com/valdineisantos/


Abraços.

[2] Comentário enviado por batista em 12/03/2010 - 12:57h:

Otima dica. Algumas vezes precisei dessa solucao e era complicado de encontrar...

[3] Comentário enviado por /bin/laden em 12/03/2010 - 18:00h:

O meu ficou: "Como obter o MAC-Address e o IP..."

nmap -sP 192.168.1.0/24 | egrep -i '(Host|MAC)' | sed -e 'N' -e 's/\n/ /' >> mac_ip


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.