Eu fiz uma classe para isso ...
Faco a comparacao utilizando deslocamento de bits ...
Espero ter ajudado, um abraco ...
Me diga depois o q vc acho ...
On Wed, 11 Apr 2001, you wrote:
>
> Oi pessoal,
>
> estou desenvolvendo um aplicativo que ser� utilizado em diferentes ambientes(lan,
>internet, etc) e eu estou querendo restringir o acesso de usu�rios que s�o permitidos
>somente na lan a n�o acessar via internet. Para fazer isto estou cadastrando em uma
>tabela a m�scara e endere�o atribuido a cada um dos ambientes e comparando com o
>endere�o que pego do usu�rio que se loga, mas estou fazendo via compara��o de string,
>por exemplo:
>
> getip user: 194.2.20.34
> usernet:194.2.0.0
> usermask:255.255.0.0
>
> Eu pego o ip aplico a usermask e comparo com o usernet para validar o acesso.
>
> Gostaria de saber se existe alguma classe que faz esta compara��o diretamente sem
>eu ter que tratar por string ou se existe uma maneira melhor de fazer isto.
>
>
> Grato
> Marcelo.
>
>
>
----------------------------------------
Content-Type: text/html; name="unnamed"
Content-Transfer-Encoding: quoted-printable
Content-Description:
----------------------------------------
import java.util.StringTokenizer ;
public class IPFilter {
private int ip ;
private int mask ;
public IPFilter(String ip, int mask) throws Exception {
if ((mask < 0) || (mask > 32))
throw new Exception("Invalid mask") ;
this.ip = this.ipToInt(ip) ;
this.mask = 32 - mask ;
this.ip = this.ip >> this.mask ;
}
public boolean accept(String ip) throws Exception {
int i = this.ipToInt(ip) ;
i = (i >> this.mask) ;
return this.ip == i ;
}
private int ipToInt(String ip) throws Exception {
StringTokenizer tokens = new StringTokenizer(ip, ".") ;
char n1 ;
char n2 ;
char n3 ;
char n4 ;
int re ;
try {
n1 = (char) Integer.parseInt(tokens.nextToken()) ;
n2 = (char) Integer.parseInt(tokens.nextToken()) ;
n3 = (char) Integer.parseInt(tokens.nextToken()) ;
n4 = (char) Integer.parseInt(tokens.nextToken()) ;
re = ((n1 & 0xff) << 24) | ((n2 & 0xff) << 16) | ((n3 & 0xff) << 8) | ((n4 &0xff)) ;
return re ;
} catch (Exception e) {
throw new Exception("Ivalid ip ") ;
}
}
}
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------