En vez de controlar por año, día y hora; podrías guardar año, día y mes y controlar por esos. Ahi va a ser una vez por dia.
Con el fin de la comparación guardaría todo en un solo campo char(8) donde guardo la fecha de visita con formato YYYYmmdd y uso date para comparar:
Código PHP:
$ahora=date("Ymd");
$sql = "select ip,visita from contador where visita='$ahora' and ip='$ip'";