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



» Screenshot
Linux: Cairo Dock no gnome
Por removido
» 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, 7919 pontos
[ Hits: 5413 ]

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 Bordas das janelas sumindo quando se habilita o compiz-fusion no Linux?
   Dica Linux recomendada Solicitar a alteração de senha no primeiro login - Samba
   Dica Linux recomendada Criando um alias no GNU/Debian sem complicação
   Dica Linux recomendada Verificar e despachar e-mails encalhados no Sendmail
   Dica Linux recomendada Gravar CD no Linux por linha de comando

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.