Listar Maquinas ligadas ao meu Servidor DHCP

Iniciado por beira, 02 de Dezembro de 2010, 20:37

tópico anterior - próximo tópico

beira

Boas pessoal!

Através do comando #cat /var/lib/dhcp3/dhcpd.leases consigo ver o conteúdo do ficheiro acerca das máquinas que adquiriram ip´s do meu servidor DHCP, sendo exibida ainda mais informação extra.

Existe algum comando ou forma de listar apenas os ip´s ou os nomes dos pc´s clientes ligados ao meu servidor DHCP sem o resto da informação?
Ou será que tenho de criar outro ficheiro filtrando os campos que me interessam?  :(

Obrigado!


zekkerj

vc quer fazer isso apenas com shell? Pq dependendo da linguagem de programação que vc usar (Perl, PHP, Python) isso pode ficar mais fácil ou mais difícil de fazer.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

beira

Zekkerj,

sim a ideia seria um comando apenas na shell! Não sei se existe, não consegui encontrar nada para resolver isto...

Agradecido!

zekkerj

Vc vai ter que se virar com filtragem avançada... muito "tr", muito "awk", muito "grep". Acho bem mais prático que vc considere usar uma linguagem de script mais integrada, como as que eu te sugeri.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

rondonbio

Existe um pacote de DHCP pra Perl no CPAN. http://search.cpan.org/~shadinger/Net-DHCP-0.66/
só o grep n resolve n?

Passa aí um pedaço do conteúdo desse arquivo pra eu te ajudar num parser.
Rondon Neto
Veja o site e se sinta em casa!
http://oucoseusproblemas.blogspot.com.br/

beira

Pelo que vejo não tem um comando simples mm que liste apenas os ip´s ou nome das máquinas.
Se for utilizar o grep, cut ou restantes vai ficar mt complicado, vou utilizar então php para filtrar e criar outro documento apenas com a informação que preciso para depois apresentar!

Agradecido pela atenção zekkerj e rondonbio


rondonbio aqui fica o texto do arquivo "/var/lib/dhcp3/dhcpd.leases", posto isto percebe-se que há muita coisa para cortar :-[


lease 172.30.0.26 {
  starts 4 2010/11/25 15:37:30;
  ends 4 2010/11/25 21:37:30;
  tstp 4 2010/11/25 21:37:30;
  cltt 4 2010/11/25 15:37:30;
  binding state free;
  hardware ethernet 07:03:15:c4:18:d8;
}
lease 172.30.0.25 {
  starts 5 2010/12/03 12:10:57;
  ends 5 2010/12/03 18:10:57;
  cltt 5 2010/12/03 12:10:57;
  binding state active;
  next binding state free;
  hardware ethernet 07:03:15:c4:18:d8;
  uid "\001\010\000'\350\024\320";
  client-hostname "Computador1";
}

rondonbio

n precisa programar nada n. faça isso:
grep "lease" nome_do_arquivo | awk '{print$2}'

me conta se deu certo
abraço

Rondon
Rondon Neto
Veja o site e se sinta em casa!
http://oucoseusproblemas.blogspot.com.br/

zekkerj

se for só pra listar os endereços, não precisa nem usar o awk, dá pra fazer com grep e cut:

grep lease /var/lib/dhcp3/dhcpd.leases | cut -d' ' -f2

Mas eu acho que ele quer mais do que isso... por exemplo, uma coisa que ele vai ter que resolver é o fato de que todas as cessões de endereço estão nesse arquivo, mesmo as vencidas. Então o mesmo IP vai aparecer várias vezes.

Outra questão: saber os endereços em uso tem pouca valia, se não der pra associar isso com outra coisa --- por exemplo o hostname da estação, ou o seu endereço MAC.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

rondonbio

#8
Citação de: zekkerj
Mas eu acho que ele quer mais do que isso... por exemplo, uma coisa que ele vai ter que resolver é o fato de que
i]todas[/i] as cessões de endereço estão nesse arquivo, mesmo as vencidas. Então o mesmo IP vai aparecer várias vezes.
Aqui ele só mostra cada IP uma vez
grep "lease" file | awk '{print$2}' | sort | uniq
Rondon Neto
Veja o site e se sinta em casa!
http://oucoseusproblemas.blogspot.com.br/

beira

para retirar o ip qq uma das soluções funciona!  ;)

a minha ideia será efectivamente associar o nome da estação ao nome do ip, para vizualizar e poder bloquear uma determinada máquina através da gestão gráfica do squid que desenvolvi em php a passar no navegador.
também terei de ter em conta os ip´s expirados e que não tenham estação associada!  :-\
vou estudar a melhor maneira e aproveitar a consola de administração que tenho desenvolvida em php pra gerir os serviços todos que utilizo!
vou deixando aqui as melhores ideias pra fazer isto

agradecido a ambos!

Abraço