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] -------------------------------------------------------------------------