| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2010 21:20:14
|
helders
Thread.start()
![[Avatar]](/images/avatar/c7fd6d5179ee2f799984eba95936bbd7.jpg)
Membro desde: 20/02/2009 08:35:38
Mensagens: 27
Offline
|
Ola gente!
Estou com um pequeno problema, tenho uma aplicação que vai enviar um pacote RTP para a rede, para isso preciso do IP de broadcast da minha rede.
Quando seto manualmente o IP do meu broadcast (que no caso é 255.255.255.0) o software funciona normalmente, porém dessa forma não tenho portabilidade.
Preciso de uma forma de obter o IP do meu broadcast (do IP da placa de rede mesmo). Eu consigo obter o endereço IP da placa sem problemas. Também tentei encontrar o endereço da máscara de sub-rede para tentar realizar o cálculo e encontrar meu broadcast, mas não consegui obter essas informações.
Alguem sabe de uma saída?
PS.: eu já consegui alterar a propriedade do sistema e levar em consideração primeiro o IPv4.
|
Veritas vos Liberabit!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/04/2010 11:13:59
|
marcelo.bellissimo
Virtual Machine Man
Membro desde: 17/10/2006 14:17:21
Mensagens: 617
Offline
|
Eu acho que isso resolve:
Retorna um Enumeration de objetos NetworkInterface...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/04/2010 11:36:58
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
http://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/04/2010 12:08:11
|
helders
Thread.start()
![[Avatar]](/images/avatar/c7fd6d5179ee2f799984eba95936bbd7.jpg)
Membro desde: 20/02/2009 08:35:38
Mensagens: 27
Offline
|
Eu usei esse método Marcelo
assim eu tenho o NetworkInterface da minha placa wireless do notebook por exemplo, se eu mando exibir o Display name aparece o nome da placa certinho, a saída mostra:
Placa: Atheros AR5009 802.11a/g/n WiFi Adapter
Ai eu tento pegar as interfaces assim:
Quando eu faço isso o networkInterface.getInterfaceAddresses(); retorna nulo e eu não consigo pegar as informações das interfaces.
PS.: entanglement eu sei qual o endereço da biblioteca de classe e não estaria postando aqui se mesmo assim não tivesse dando certo, na próxima vez tente postar algo mais construtivo por favor.
This message was edited 1 time. Last update was at 09/04/2010 12:09:28
|
Veritas vos Liberabit!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/04/2010 12:16:54
|
marcelo.bellissimo
Virtual Machine Man
Membro desde: 17/10/2006 14:17:21
Mensagens: 617
Offline
|
Caramba... fiz os testes aqui e com esse mesmo algoritmo seu, eu consigo imprimir normalmente os endereços IP... algum programa estaria bloqueando a leitura desses dados, talvez? Veja a documentação do método:
If there is a security manager, its checkConnect method is called with the InetAddress for each InterfaceAddress. Only InterfaceAddresses where the checkConnect doesn't throw a SecurityException will be returned in the List.
http://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html#getInterfaceAddresses%28%29
Apenas interfaces onde o checkConnect não retorna uma SecurityException serão exibidas... talvez o problema seja esse...
This message was edited 1 time. Last update was at 09/04/2010 12:17:26
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/04/2010 12:26:56
|
helders
Thread.start()
![[Avatar]](/images/avatar/c7fd6d5179ee2f799984eba95936bbd7.jpg)
Membro desde: 20/02/2009 08:35:38
Mensagens: 27
Offline
|
Hmm é possível. Eu li que por padrao ele pega sempre primeiro o IPv6, pra mostrar primeiro o IPv4 eu alterei a opção do sistema com esse método:
Coloquei ele antes do método ali em cima, tentei sem ele e também não retorna nada.
Há alguma forma de desativar essa verificação de segurança?
|
Veritas vos Liberabit!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/04/2010 14:35:35
|
marcelo.bellissimo
Virtual Machine Man
Membro desde: 17/10/2006 14:17:21
Mensagens: 617
Offline
|
Voce pode fazer o seu próprio método, pegue o fonte do SDK do Java e altere... aqui está o método:
A linha que tem o comentário é a linha que executa o checkConnect, se quiser, comente ela e pronto... faça os ajustes necessários na sua Classe, e teste... deve funcionar...>
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2010 20:20:06
|
helders
Thread.start()
![[Avatar]](/images/avatar/c7fd6d5179ee2f799984eba95936bbd7.jpg)
Membro desde: 20/02/2009 08:35:38
Mensagens: 27
Offline
|
Eu to tentando alterar esse método mas como faço isso?
Tentei criar minha classe com o mesmo nome, copia o conteúdo e comentar a linha mas um método init() da pau na hora de rodar. Tentei fazer uma classe que herda a NetworkInterface e sobrescrever o método mas nada também, implementar também não da...
Alguma idéia?
|
Veritas vos Liberabit!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 07:07:45
|
marcelo.bellissimo
Virtual Machine Man
Membro desde: 17/10/2006 14:17:21
Mensagens: 617
Offline
|
Não precisa "clonar" a classe toda, apenas coloque esse método dentro do seu projeto, faça as alterações, e ao invés de chamar o método "original" chame o seu...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 08:33:34
|
kemperacc
Java Ninja
![[Avatar]](/images/avatar/053b47ac39ef2ea08d354ee54baadabb.png)
Membro desde: 11/11/2006 11:34:51
Mensagens: 288
Localização: Divinopolis
Offline
|
helders wrote:Ola gente!
Estou com um pequeno problema, tenho uma aplicação que vai enviar um pacote RTP para a rede, para isso preciso do IP de broadcast da minha rede.
Quando seto manualmente o IP do meu broadcast (que no caso é 255.255.255.0) o software funciona normalmente, porém dessa forma não tenho portabilidade.
Preciso de uma forma de obter o IP do meu broadcast (do IP da placa de rede mesmo). Eu consigo obter o endereço IP da placa sem problemas. Também tentei encontrar o endereço da máscara de sub-rede para tentar realizar o cálculo e encontrar meu broadcast, mas não consegui obter essas informações.
Alguem sabe de uma saída?
PS.: eu já consegui alterar a propriedade do sistema e levar em consideração primeiro o IPv4.
Cara, estuda sobre TCP/IP (mais especificamente sobre subrede).
O que voce esta falando nao eh broadcast nao, alias, 255.255.255.0 jamais sera um broadcast pois eles sempre sao impar.
O broadcast é o ultimo endereco de um segmento de rede TCP/IP, quem vai definir o broadcast de uma rede é a mascara.
http://www.juliobattisti.com.br/artigos/windows/tcpip_p7.asp
[]s
Kemper
|
Um feito eh impossivel ateh que alguem o faca...
ABAIXO DEFAULTTABLEMODEL!!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 08:50:09
|
helders
Thread.start()
![[Avatar]](/images/avatar/c7fd6d5179ee2f799984eba95936bbd7.jpg)
Membro desde: 20/02/2009 08:35:38
Mensagens: 27
Offline
|
Ola kemperacc,
Sei exatamente o que é broadcast
O fato de querer a mascara de sub-rede é exatamente para poder CALCULAR qual o broadcast (se sei calcular eu acho que sei o suficiente sob broadcast )
Não há uma forma de obter o endereço de broadcast em java, por isso preciso da mascara de sub-rede para conseguir calcular qual é meu endereço de broadcast, baseado em meu IP e em minha mascara de sub-rede.
|
Veritas vos Liberabit!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 08:54:30
|
marcelo.bellissimo
Virtual Machine Man
Membro desde: 17/10/2006 14:17:21
Mensagens: 617
Offline
|
Exatamente...
E aí, algum progresso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 09:14:37
|
helders
Thread.start()
![[Avatar]](/images/avatar/c7fd6d5179ee2f799984eba95936bbd7.jpg)
Membro desde: 20/02/2009 08:35:38
Mensagens: 27
Offline
|
Bom marcelo, espero q eu tenha entendido certo, vamos la:
Exception in thread "main" java.lang.NullPointerException
at teste.Main.getInterfaceAddresses(Main.java:17)
at teste.Main.main(Main.java:54)
Essa linha 17 corresponde ao FOR do método de cima, esse bindings[] ta vazio, eu olhei na classe NetworkInterface e não achei nada que preenche ele, o que é muito estranho, nem no construtor default...
|
Veritas vos Liberabit!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 10:48:18
|
marcelo.bellissimo
Virtual Machine Man
Membro desde: 17/10/2006 14:17:21
Mensagens: 617
Offline
|
É, realmente... estou tentando descobrir como funciona isso aí... alguém ai teria algo á dizer, pra ajudar?
Fiquei curioso agora...
Se eu descobrir algo eu posto aqui...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 12:44:22
|
kemperacc
Java Ninja
![[Avatar]](/images/avatar/053b47ac39ef2ea08d354ee54baadabb.png)
Membro desde: 11/11/2006 11:34:51
Mensagens: 288
Localização: Divinopolis
Offline
|
Talvez isso te ajude, fiz aqui agora um codigo que lista todas as interfaces e todos os ips da maquina:
Um fato interessante a ressaltar é que cada interface pode ter N ips, e cada equipamento pode ter N interfaces, agora creio que seu problema será descobrir qual broadcast voce quer!
hehehe
|
Um feito eh impossivel ateh que alguem o faca...
ABAIXO DEFAULTTABLEMODEL!!! |
|
|
 |
|
|