- <?php 
-     
-    $bd="base"; 
-    $host="localhost"; 
-    $user="root"; 
-    $password=""; 
-    $Conexion = mysql_connect($host,$user,$password); 
-    mysql_select_db($bd, $Conexion); 
-   
-      
-     if(isset($_GET['enlace'])) 
-       { 
-      
-       $link=$_GET['enlace']; 
-        
-       if (getenv("HTTP_X_FORWARDED_FOR"))  
-          { 
-            $ip   = getenv("HTTP_X_FORWARDED_FOR"); 
-          } 
-       else  
-          { 
-            $ip   = getenv("REMOTE_ADDR"); 
-          } 
-          
-         $fecha=date('Y-m-d')." 00:00:00"; 
-   
-   
-       $sSQL="SELECT count(*) FROM enlaces_usuarios WHERE ip='$ip' and fecha='$fecha' and id_enlace=$link"; 
-       $rs = mysql_db_query($bd,$sSQL); 
-        
-        
-       if ($rs) 
-        { 
-           $registros=mysql_fetch_row($rs); 
-            
-             if ($registros[0]==0) 
-              { 
-           $sSQL="UPDATE enlaces SET clicks=clicks+1 WHERE id_enlace=$link"; 
-           $rs = mysql_db_query($bd,$sSQL); 
-           $sSQL="INSERT INTO enlaces_usuarios (id_enlace, ip, fecha, id_row) VALUES($link,'$ip','$fecha',NULL)"; 
-           $rs = mysql_db_query($bd,$sSQL); 
-              } 
-   
-        } 
-     }     
-      
-      
-   
-     $sSQL="SELECT id_enlace, descipcion, clicks FROM enlaces"; 
-   $rs = mysql_db_query($bd,$sSQL);   
-      
-     echo "<table>"; 
-     echo "<tr><td>IP:</td><td>$ip</td><td>Clicks</td></tr>"; 
-       while($encontrado=mysql_fetch_row($rs)) 
-         { 
-             
-            echo "<tr><td>".$encontrado[0]."</td><td><a href='?enlace=".$encontrado[0]."'>".$encontrado[1]."</a></td><td>".$encontrado[2]."</td></tr>"; 
-   
-         }    
-     echo "</table>"; 
-      
-     //echo '<meta http-equiv="Refresh" content="10;URL=index.php">';  
- ?> 
-   
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
SQL </td></tr><tr><td id='CODE'><!--sql1-->CREATE TABLE  enlaces (
  `id_enlace` int(10) unsigned NOT NULL auto_increment,
  `descipcion` varchar(20) default NULL,
  `clicks` int(10) unsigned default NULL,
  PRIMARY KEY  (`id_enlace`)
) ENGINE
=InnoDB DEFAULT CHARSET
=latin1;
CREATE TABLE  enlaces_usuarios (
  `id_enlace` int(10) unsigned NOT NULL default 
'0',
  `ip` varchar(20) default NULL,
  `fecha` datetime default NULL,
  `id_row` int(10) unsigned NOT NULL auto_increment,
  PRIMARY KEY  (`id_row`),
  KEY `FK_enlaces_usuarios_1` (`id_enlace`),
  CONSTRAINT `FK_enlaces_usuarios_1` FOREIGN KEY (`id_enlace`) REFERENCES `enlaces` (`id_enlace`)
) ENGINE
=InnoDB DEFAULT CHARSET
=latin1;
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Eso funciona todo esta en un solo archivo para mayor facilidad, pero puedes separarlo, y las validaciones son superficiales, tampoco se considera la hora solo la fecha pero puede darte una idea de como hacerlo tambien puedes usar las cookies
Saludos