Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Gostaria da ajuda de vocês para fazer alguma função que remova ips que tenham range iguais até a segunda casa e deixe apenas o primeiro ip. Então se eu tenho por exemplo os seguintes ips:
201.173.225.152
201.173.229.20
201.172.154.3
Deveria retornar
201.173.225.152
201.172.154.3
Espero que tenham entendido. Desde já agradeço quem puder me ajudar.
Única coisa que consegui fazer é fazer um loop que separa as casas e porta.
$arr = array(201.173.225.152:1000','201.173.229.20:10000','201.172.154.3');
foreach($arr as $value)
{
$exp_ip = explode(".",$value);
$exp_port = explode(":",$exp_ip[3]);
$casa1 = $exp_ip[0];
$casa2 = $exp_ip[1];
$casa3 = $exp_ip[2];
$casa4 = $exp_port[0];
$porta = $exp_port[1];
echo "$casa1.$casa2</br>";
}<?php
$arrayip = array('179.215.219.196','179.215.219.196','199.16.159.0');
$ipsverificar = array();
foreach($arrayip as $ip)
{
$ip = substr($ip,0,strlen($ip));
$ipsingular= explode('.', $ip);
array_push($ipsverificar,strval($ipsingular[0]). '.'. strval($ipsingular[1]));
}
$resultado= array_unique($ipsverificar);
$resultado = array_values($resultado);
$encontrou = 0;
for($i=0; $i< sizeof($resultado); $i++)
{
for($a=0;$a < sizeof($arrayip);$a++)
{
if(strpos($arrayip[$a],$resultado[$i]) !== false)
{
$encontrou++;
if($encontrou > 1)
{
unset($arrayip[$a]);
$arrayip = array_values($arrayip);
}
}
}
$encontrou = 0;
}
print_r($arrayip);
?>@saidmrn
Muito obrigado ajudou muito! Porém ainda tem algo errado, se você alterar o valor para
$arrayip = array('179.215.219.196','179.215.189.16','179.215.189.34','199.16.159.0');
Retorna
Array ( [0] => 179.215.219.196 [1] => 179.215.189.34 [2] => 199.16.159.0 )
Ou seja, ainda está repetindo. Porque será ??
>
@saidmrn
Muito obrigado ajudou muito! Porém ainda tem algo errado, se você alterar o valor para
$arrayip = array('179.215.219.196','179.215.189.16','179.215.189.34','199.16.159.0');
Retorna
Array ( [0] => 179.215.219.196 [1] => 179.215.189.34 [2] => 199.16.159.0 )
Ou seja, ainda está repetindo. Porque será ??
vou analisar o codigo denovo e daqui a pouco eu posto,caso eu consiga resolver.
só uma dúvida,qual a necessidade de remover os ip repetido na segunda casa na sua aplicação ?
Ok, estou aguardando.
Na verdade são endereços proxy. Minha intenção em fazer isso é porque preciso fazer muitos cadastros em um site e com isso fica mais difícil do site detectar que é a mesma pessoa rsrs.
na linha
$resultado= array_unique($ipsverificar);
desculpe pelo double post
na linha
$resultado= array_unique($ipsverificar);
altere para:
$resultado= $ipsverificar;
Alterei e funcionou!
Não sei como te agradecer! Me ajudou muuuuuito!
Muito obrigado! :D :D
O que você já fez ? poste aqui para te auxiliarmos.