Ehm bueno, lo que me ocurre es lo siguiente:
Es que quiero cortar la IP, de manera que quede 255.255.--.--
Coloqué una pequeña función, pero me sale un error que es el siguiente;
Fatal error: Cannot redeclare esconder_ip() (previously declared in /home/virtual/sitio114542/www/ip2.php:50) in /home/virtual/sitio114542/www/ip2.php on line 50
la línea 50 es:
function esconder_ip ($ip, $n = 2) { //$n es el nmero de trozos a ocultar
y el código completo es:
Código PHP:
<?
//obtendremos los referers que provengan de otra página web
// datos para conectar a la db
include("datos.php");
//conectamos a la db
$link=mysql_connect($dbhost,$dbusuario,$dbpassword);
mysql_select_db($db,$link);
//sacamos los datos
$sql=mysql_query("SELECT * FROM referers order by id desc;");
while($row = mysql_fetch_array($sql)) {
$enlace = $row[enlace];
$ip = $row[ip];
$host = $row[host];
//cortaremos el host
$host=explode(".",$host);
$n=count($host);
$n1=$n-1;
$n2=$n-2;
$n3=$n-3;
$host=$host[$n3].".".$host[$n2].".".$host[$n1];
//si el host devuelve una ip, cambiaremos los números por el signo "?"
if(is_numeric($host[0])){
for($i=0; $i<=9; $i++){
$host=str_replace($i,"?",$host);
}
}else{
}
$host=strtolower($host);
//imprimiremos la fecha
$fecha = $row[fecha];
$fecha = date("d/m/y" . "-" . "H:i",$fecha);
//cortaremois la ip
$n = "2";
function esconder_ip ($ip, $n = 2) { //$n es el nmero de trozos a ocultar
if (ip2long($ip) == -1 || ip2long($ip) == false) return false;
$cachos = explode('.', $ip);
if (is_int($n) || count($cachos) != 4 || $n > 4) return false;
for ($i = 0, $ip_parseada = array(), $cachos = array_reverse($cachos); $i <= ($n - 1); $i++) $ip_parseada[] = str_repeat('x', strlen($cachos[$i]));
for ($b = $n; $b <= 3; $b++) $ip_parseada[] = $cachos[$b];
return implode('.', array_reverse($ip_parseada));
}
$ip = esconder_ip($ip, $n);
//finalmente imprimimos los datos
echo "$fecha $ip *.$host $enlace<br>";
}
?>
Hay que destacar que es una fila que se saca de la db.