Перепробовал много вариантов. Выбрал отечественный - API Yandex.
Задача определить город пользователя. Для решения данной задачей воспользуемся сервисом от яндекс, а именно Яндекс.Картами.
<script charset="utf-8" src="http://api-maps.yandex.ru/1.1/index.xml" type="text/javascript"></script>
<script type="text/javascript">
if (YMaps.location.city !='') {
document.write ("Ваш город: " + YMaps.location.city);
}
</script>
Проверим, не пустое ли значение возвращает YMaps.location.city, если не пусто, то пишем город.