mysql_query()
no devolverá falso si la consulta se ejecutó correctamente, incluso si no hay resultados. Intente usar mysql_num_rows()
en cambio:
$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$query = "SELECT * FROM ip WHERE ip='$ip'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
echo "Ip is already in database";
}
else {
echo "Ip is not in database";
}
Por cierto, agregué mysql_real_escape_string
alrededor de REMOTE_ADDR
var, siempre debe desinfectar su entrada :)