IP адрес не годится в качестве идентификатора пользователя, он может измениться, он может быть выдан другому пользователю. Запись в куках (в кэше) тоже не годится, у пользователя может быть несколько компьютеров, пользователь может предоставить доступ со своего компьютера другому пользователю, в конце концов это может быть общедоступный компьютер. Если у вас на сайте предполагается система своих лайков, не привязанная к какой либо соцсети. То нужно делать авторизацию, присваивать пользователям идентификаторы, и регистрировать лайки по ним.
В качестве счетчика лайков, логично будет хранить не просто счетчик у новости, а писать отдельную таблицу: id новости, id пользователя, лайк, дизлайк. Когда пользователь ставит лайк - искать его id + id новости, в этой таблице, и если есть, то ставить единицу либо в поле лайк, либо дизлайк.
Для счетчика под новостью брать сумму лайков, дизлайков по id новости.