D.2.> Я не могу говорить за всё, но конкретно в моём случае информация есть в открытом доступе
1. Это не база доступна, а интерфейс для запросов к ней. Он медленный и с ограничениями на количество обращений в единицу времени. Если быстро дёргать, то банят

А мне нужно, порой, десятки-сотни IP-адресов в секунду резольвить. Чтобы получить эти данные даже не нужно на сайт лезть, в Linux есть команда whois, которая вернёт то же самое. Но работает медленно (0.1—0.5 сек. на запрос) и быстро банят. Но это только первая часть проблемы есть вторая:
2. В выхлопе Whois нет строгого формата названия города. Есть поля address и descr, заполняемые в произвольном формате. Однозначно определяется только страна. Город придётся вытаскивать с элементами ИИ. И то будут ошибки. В нашем случае:
descr: Krasnodar, Russia
address: 18a Krasina Novorossiysk Russia
address: OOO NOVTELECOM
descr: Petersburg
А бывают и более сложные случаи
Потому и говорю, что парсить whois можно, но медленно и глючно. Я подумываю иногда попробовать задействовать этот метод для IP, у которых город через GeoIP не определяется, но эффективность маленькая, возни — много.
Вообще, и у «сильных мира сего» в базах ошибки не редкость. Скажем, мой домашний IP Твиттером определяется как Екатеринбург