| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/02/2008 20:46:46
|
mchiareli
JavaEvangelist
![[Avatar]](/images/avatar/03e4d3f831100d4355663f3d425d716b.png)
Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline
|
É possivel recuperar todos os mac address em uma rede, ou varrer a rede em busca de uma mac address especifico, já vi algumas aplicações que fazer isso, alguem tem ideia de como implementar isso em java?
|
codifica.wordpress.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 00:11:43
|
genildof
Debugger
![[Avatar]](/images/avatar/6e2c22ab08479b1da4206a0c5d7da31e.jpg)
Membro desde: 30/09/2006 09:38:16
Mensagens: 70
Localização: Campo Grande - MS
Offline
|
Olá,
Acho o java não tem suporte nativo à tratamento de endereços MAC, me corrijam por favor se estiver enganado.
Supondo que use o Windows, apartir do java EU invocaria os comandos do SO, para coletar os dados necessários:
> arp -d * -> limpa cache arp
> ping <endereço de broadcast da sua rede> -> popula tabela arp com os MAC dos hosts ativos
> arp -a -> mostra o cache arp
E então trataria essa tabela coletada.
Só vai funcionar para a LAN em que estiver, os pacotes de broadcast não são propagados para fora da rede.
/genildo
|
/genildof. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 08:33:46
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
Existe a classe (java 6) NetworkInterface que permite pegar o MAC local. Não sei se permite esse tipo de query que procura. Mas dê uma olhada...
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 08:44:57
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Só lembrando que :
- arp -d * só consegue ser executado se o usuário for administrador da máquina (e no caso do Windows Vista é necessário usar um "Command Prompt" com permissão especial de administrador);
- em algumas redes você, ao tentar pingar o endereço de broadcast, não obtém resposta de nenhuma máquina Windows (só de algumas máquinas Unix antigas, que não têm essas frescuras de segurança).
Isso é meio chatinho mesmo; instale o Network Monitor 3.1 (que você pode baixar do site da Microsoft) e veja se ele dá suporte a esse tipo de coisa que você quer.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 17:13:39
|
mchiareli
JavaEvangelist
![[Avatar]](/images/avatar/03e4d3f831100d4355663f3d425d716b.png)
Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline
|
eu realmente precisava fazer isso sem depender do SO...
|
codifica.wordpress.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 17:24:34
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
mchiareli wrote:eu realmente precisava fazer isso sem depender do SO...
Há tr~es jeitos para "não depender do SO".
a) Ou você não faz o que não existe pronto no Java (ou seja, muda seu requisito)
b) Ou, pelo contrário, usa um monte de código (talvez código nativo, ou escrito em linguagem de script, ou sei lá o quê) que tem um monte de ifs para checar uma porção de sistemas operacionais diferentes, e testa em todos eles.
Eu tenho de fazer muito isso, e isso é terrivelmente tedioso, mas o requisito é esse...
c) Ou você tem a sorte de encontrar (ou o dinheiro para comprar) uma biblioteca que tem esse monte de código nativo desenvolvido para N sistemas operacionais que faz isso para você.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 17:46:25
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Além do jeito B do thingol que não tão difícil assim para um programador que conheça Java, C e TCP/IP,
você pode simplesmente criar um aplicativozinho simples do tipo daemon que rode em todas as máquinas. O tal aplicativozinho deve enviar ao servidor o MAC Address da máquina em que está rodando. Mais simples e rápido de fazer do que isto só combinando o ipconfig com o net send
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 18:10:50
|
mchiareli
JavaEvangelist
![[Avatar]](/images/avatar/03e4d3f831100d4355663f3d425d716b.png)
Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline
|
Luca wrote:Olá
Além do jeito B do thingol que não tão difícil assim para um programador que conheça Java, C e TCP/IP,
você pode simplesmente criar um aplicativozinho simples do tipo daemon que rode em todas as máquinas. O tal aplicativozinho deve enviar ao servidor o MAC Address da máquina em que está rodando. Mais simples e rápido de fazer do que isto só combinando o ipconfig com o net send
[]s
Luca
Não tem como fazer dessa maneira, nao vou buscar pcs na rede, mas alguns dispositivos, como impressoras e leitores de radio frequencia.
|
codifica.wordpress.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 18:11:52
|
mchiareli
JavaEvangelist
![[Avatar]](/images/avatar/03e4d3f831100d4355663f3d425d716b.png)
Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline
|
thingol wrote:
mchiareli wrote:eu realmente precisava fazer isso sem depender do SO...
Há tr~es jeitos para "não depender do SO".
a) Ou você não faz o que não existe pronto no Java (ou seja, muda seu requisito)
b) Ou, pelo contrário, usa um monte de código (talvez código nativo, ou escrito em linguagem de script, ou sei lá o quê) que tem um monte de ifs para checar uma porção de sistemas operacionais diferentes, e testa em todos eles.
Eu tenho de fazer muito isso, e isso é terrivelmente tedioso, mas o requisito é esse...
c) Ou você tem a sorte de encontrar (ou o dinheiro para comprar) uma biblioteca que tem esse monte de código nativo desenvolvido para N sistemas operacionais que faz isso para você.
Acho que vou tentar partir para a alternativa b.
|
codifica.wordpress.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 18:35:03
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
mchiareli wrote:Não tem como fazer dessa maneira, nao vou buscar pcs na rede, mas alguns dispositivos, como impressoras e leitores de radio frequencia.
Ainda acho que é possível e mais rápido de fazer a solução do daemon que inclusive pode dialogar com os periféricos por outros meios fora da rede como através de portas USB ou seriais. Mas se sua equipe de desenvolvimento atende bem ao que citei, a solução B do thingol é perfeitamente factível.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 20:58:08
|
Dieval Guizelini
Virtual Machine Man
![[Avatar]](/images/avatar/9fc92b9c69b711dcb880ccb743fc6f06.jpg)
Membro desde: 05/07/2006 14:39:44
Mensagens: 570
Localização: Curitiba - PR
Offline
|
Achei esse código aqui, talvez te ajude:
fonte: http://forum.java.sun.com/thread.jspa?threadID=615562&messageID=3424234
fw
Ps: esse é o quarto tópico que encontro fantasticas contribuições do mestreshake... apenas para registrar, o guj não é forum do orkut.
|
Sun Certified Java Programmer 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 21:21:03
|
mchiareli
JavaEvangelist
![[Avatar]](/images/avatar/03e4d3f831100d4355663f3d425d716b.png)
Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline
|
Luca wrote:Olá
mchiareli wrote:Não tem como fazer dessa maneira, nao vou buscar pcs na rede, mas alguns dispositivos, como impressoras e leitores de radio frequencia.
Ainda acho que é possível e mais rápido de fazer a solução do daemon que inclusive pode dialogar com os periféricos por outros meios fora da rede como através de portas USB ou seriais. Mas se sua equipe de desenvolvimento atende bem ao que citei, a solução B do thingol é perfeitamente factível.
[]s
Luca
Então o problema eh que nao terei micros ligado estes dispositivos para pegar a configuração e enviar ao servidor, por exemplo a impressora pode ficar no meio da linha de produção sem nenhum pc ligada diretamente a rede, é impressoras do tipo zebra e semelhantes, os leitores de radio frequencia tb vão ligados a rede diretamente sem auxilio de pc, por isso disse que nao consigo utilizar esta solução...
Estes dispositos tem um padrão de mac address, por isso eu precisava "varrer" a rede em busca de determinado padrão de dispositivo, para descobrir o ip desta impressora.
Vai ser algo mais ou menos assim, os caras plugam varias impressoras pelo produção, o software é capaz de localizar as impressores e informar o ip atual, o mesmo funcionamento para os leitores.
Esses programas tipo networkmagic fazem isso, conseguem recuperar todos os dispositivos da rede, eu preciso algo desse tipo.
|
codifica.wordpress.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 21:22:14
|
mchiareli
JavaEvangelist
![[Avatar]](/images/avatar/03e4d3f831100d4355663f3d425d716b.png)
Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline
|
Obrigado , vou dar uma olhada nesse código para ver se ajuda.
|
codifica.wordpress.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 21:37:25
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
mchiareli wrote:Então o problema eh que nao terei micros ligado estes dispositivos para pegar a configuração e enviar ao servidor, por exemplo a impressora pode ficar no meio da linha de produção sem nenhum pc ligada diretamente a rede, é impressoras do tipo zebra e semelhantes, os leitores de radio frequencia tb vão ligados a rede diretamente sem auxilio de pc, por isso disse que nao consigo utilizar esta solução...
Agora entendi. Talvez tivesse sido melhor você ter explicado isto logo.
Vocês usam ou pretendem usar algum serviço de diretório do tipo LDAP ou Active Directory? Pode ser que facilite muitas coisas e de passagem facilite muito a resolução do seu problema caso o MAC Address esteja no esquema.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/02/2008 22:50:23
|
mchiareli
JavaEvangelist
![[Avatar]](/images/avatar/03e4d3f831100d4355663f3d425d716b.png)
Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline
|
Luca wrote:Olá
mchiareli wrote:Então o problema eh que nao terei micros ligado estes dispositivos para pegar a configuração e enviar ao servidor, por exemplo a impressora pode ficar no meio da linha de produção sem nenhum pc ligada diretamente a rede, é impressoras do tipo zebra e semelhantes, os leitores de radio frequencia tb vão ligados a rede diretamente sem auxilio de pc, por isso disse que nao consigo utilizar esta solução...
Agora entendi. Talvez tivesse sido melhor você ter explicado isto logo.
Vocês usam ou pretendem usar algum serviço de diretório do tipo LDAP ou Active Directory? Pode ser que facilite muitas coisas e de passagem facilite muito a resolução do seu problema caso o MAC Address esteja no esquema.
[]s
Luca
Acho que devia ter postado essa explicação no inicio, mas agora esta ai..rs
Nao pretendemos usar nenhum serviço de diretorio.
a ideia eh deixar automagico msm, plugou o dispositivo na rede o software faz uma busca e lista, sem nenhum tipo previo de registro.
|
codifica.wordpress.com |
|
|
 |
|
|