- Fórum WMO
- → Viewing Profile: Posts: colerus
Community Stats
- Group Usuários
- Active Posts 4
- Profile Views 1232
- Member Title Novato no fórum
- Age 40 years old
- Birthday February 18, 1985
-
Sexo
Não informado
-
Localidade
Petrópolis-RJ
-
Interesses
Diversos
Contact Information
-
ICQ
121767322
-
Página Web
http://colerus.speedserv.com
-
Windows Live
mikael_ptr@hotmail.com
0
Neutral
User Tools
Friends
colerus hasn't added any friends yet.
Latest Visitors
Posts I've Made
In Topic: Criar Array Dessa Query [ Resolvido ]
07/08/2008, 20:54
da um print_r($coluna) entre tags <pre> e </pre> pra vc ver como q a array ta estruturada...
In Topic: Validar Ip Dentro Da Faixa De Ip
07/08/2008, 20:50
Só atente-se que o tipo
integerdo PHP ésigned. Isto faz com que a função gere valores negativos para determinados endereços.
Mas deixe-me te tacar uma idéia... Ao invés de ter um campofaixa_inicialefaixa_finalno banco de dados, porque não usa um campo só usando o padrão CIDR?
Dê uma lida aqui: http://en.wikipedia....-Domain_Routing
Tomando a primeira faixa (189.12.0.0 - 189.13.255.255) como exemplo, ficaria: 189.12.0.0/15
Aí você poderia usar esta função, contida nesta mesma página do manual:function netMatch($cidr, $ip) { list($net, $mask) = explode ('/', $cidr); return (ip2long($ip) & ~((1 << (32 - $mask)) - 1)) == ip2long($net); }
Para usá-la:print netMatch('189.12.0.0/15', '189.12.125.12') ? 'dentro da faixa especificada' : 'fora da faixa especificada';[]’s
boa... vou dar uma testada e funcionando direito mando meu script embora...
In Topic: Validar Ip Dentro Da Faixa De Ip
07/08/2008, 18:45
eu uso uma função minha para fazer isso... aí vai:
vlw...
<?php
function checaIP($qual,$inicio,$final){
$sub = explode(".",$qual);
//rotinas para verificar se é um ip válido...
if(count($sub) != 4){
return array(false,"IP Inválido");
}
for($i = 0; $i < count($sub); $i++){
if($sub[$i] < 0 || $sub[$i] > 255 || !is_numeric($sub[$i])){
return array(false,"IP Inválido");
}
}
$ini = explode(".",$inicio);
//rotinas para verificar se é um ip válido...
if(count($ini) != 4){
return array(false,"Faixa inicial inválida");
}
for($i = 0; $i < count($ini); $i++){
if($ini[$i] < 0 || $ini[$i] > 255 || !is_numeric($ini[$i])){
return array(false,"Faixa inicial inválida");
}
}
$fim = explode(".",$final);
//rotinas para verificar se é um ip válido...
if(count($fim) != 4){
return array(false,"Faixa final inválida");
}
for($i = 0; $i < count($fim); $i++){
if($fim[$i] < 0 || $fim[$i] > 255 || !is_numeric($fim[$i])){
return array(false,"Faixa inicial inválida");
}
}
// verificar se as faixas estao corretas
if($ini[0]> $fim[0]){
return array(false,"Faixa inicial deve ser menor que faixa final");
}
if($ini[1]> $fim[1] && $ini[0] == $fim[0]){
return array(false,"Faixa inicial deve ser menor que faixa final");
}
if($ini[2]> $fim[2] && $ini[0] == $fim[0] && $ini[1] == $fim[1]){
return array(false,"Faixa inicial deve ser menor que faixa final");
}
if($ini[3]> $fim[3] && $ini[0] == $fim[0] && $ini[1] == $fim[1] && $ini[2] == $fim[2]){
return array(false,"Faixa inicial deve ser menor que faixa final");
}
//enfim verifica se o ip passado está dentro desta faixa...
if($sub[0] < $ini[0] || $sub[0] > $fim[0]){
return array(false,"IP fora da faixa");
}
if($sub[1] < $ini[1] || $sub[1] > $fim[1]){
if($sub[0] >! $fim[0] || $sub[0] <! $ini[0]){
return array(false,"IP Fora da Faixa");
}
}
if($sub[2] < $ini[2] || $sub[2] > $fim[2]){
if($sub[1] >! $fim[1] || $sub[1] <! $ini[1]){
if($sub[0] >! $fim[0] || $sub[0] <! $ini[0]){
return array(false,"FaixaIP Fora da Faixa");
}
}
}
if($sub[3] < $ini[3] || $sub[3] > $fim[3]){
if($sub[2] >! $fim[2] || $sub[2] <! $ini[2]){
if($sub[1] >! $fim[1] || $sub[1] <! $ini[1]){
if($sub[0] >! $fim[0] || $sub[0] <! $ini[0]){
return array(false,"IP Fora da Faixa");
}
}
}
}
return array(true);
}
//Exemplo...
$ip = array("192.168.0.1","192.168.1.1","192.168.255.255","192.168.0.0","0.0.0.0","192.168.0.0",
"192.168.0.255","192.255.0.0","255.168.0.1","192.0.0.0");
$inicio = "192.168.0.0";
$fim = "192.168.0.255";
foreach($ip as $pk){
$teste = checaIp($pk,$inicio,$fim);
if($teste[0] == false){
echo("erro: ". $teste[1] ."; IP: $pk; Inicio: $inicio; Fim: $fim<br />");
} else {
echo("Certo... IP: $pk; Inicio: $inicio; Fim: $fim <br />");
}
}
?>vlw...
- Fórum WMO
- → Viewing Profile: Posts: colerus
- Privacy Policy
- Regras ·



Postagens