Никогда не будет никогда точности в 5км.
Даже если представить полуфантастический случай, когда провайдер на одного пользователя выделяет 1 ip.
Вот я переехал даже с одного конца города на другой с сохранением ip - уже больше 5км разбег будет.
А ведь я могу и в соседний город переехать - это уже десятки км, а может даже и сотни.
Если у тебя сервис правильно определяет область, то это уже очень высокая точность и для бизнеса её вполне хватит (сразу выбрать правильный город на сайте).
Для более высокой точности остаётся три пути:
1. Прямо спросить у пользователя (или его устройства через Geolocation API в браузере)
2. Спросить у какой-нибудь рекламной сети типа яндекса/гугла
3. Если на руках только ip и пользователь совершил что-то незаконное - обращаться с соответствующим заявлением в органы или суд, а они уже пойдут к провайдеру и выяснят хоть точный адрес проживания.