За последние 24 часа нас посетили 44609 программистов и 1723 робота. Сейчас ищут 707 программистов ...

Как определить город юзера по его IP-адреу?

Тема в разделе "PHP для новичков", создана пользователем EndoCrinolog, 4 фев 2012.

  1. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Если кто делал или встречался - подскажите направление, или сайт, или скрипт
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    только базу юзать.
     
  3. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Ну вы мне прямо очень помогли...
    Я знаю, что нужно юзать базу. Мне нужен скрипт, или сайт с подобными вещами, а не отписки вроде Вашей.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    иди и найди =)
    за тебя никто не решит какой именно тебе больше по душе
     
  5. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Да мне без разницы, какой. Просто я нашел 2 вида скриптов и они оба не работают.. Если кто-то делал, может у него есть готовое решение или хотя бы ссылки на страницы, содержащие скрипт....
     
  6. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    а че сразу база-то? есть куча онлайн сервисов, "отдающих" инфу об ip по GET запросу...
     
  7. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Вот в том-то и дело.. Я их не нашел! Да и хотелось бы самому написать, да вот направление никак не подскажут... И пример скрипта какой...
     
  8. yuri

    yuri Активный пользователь

    С нами с:
    16 янв 2012
    Сообщения:
    288
    Симпатии:
    2
  9. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Вот про яндекс.карты это другая история, а вот локально - мне не нужно. на сайте не так много места, чтобы размещать метровые базы данных....
     
  10. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
  11. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    про ipgeobase я уже знаю. По его поводу как раз и нашел 2 скрипта, которые были нерабочими. Третий связывал базу ipgeobase, если она лежит в той же папке, что и сайт, а сам файл весил 21 метр... А вот по поводу ip-whois я сейчас посмотрю...
     
  12. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    ну так посмотри почему они не работают и почини....
     
  13. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Решил просто загружать полученные данные, а потом просто обрезать строку...
     
  14. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    семь раз отмерь!
     
  15. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Да вот, сижу отмеряю... Уже и данные корректные получаю, но нужно еще правильно обрезать данные, чтобы осталась только запись "Город: [город]"... И всё... Хорошо, что сайт такой попался, который в адресную строку заносит:
    http://ip-whois.net/ip_geo.php?ip=109.169.200.84

    Вот так вот и получаю, и обрезаю...
     
  16. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    Можно в цикле)
     
  17. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Этот код вставлен в include(), поэтому выполняется КАЖДЫЙ раз при загруженном IP

    Но почему-то не получется обрезать.. Вот смотрите:
    1) Получаю данные:
    Код (Text):
    1.  
    2. $fl = "http://ip-whois.net/ip_geo.php?ip=".$ipus;
    3. $fp = fopen($fl,"r");
    4. if (!$fp){
    5. $townIp = "Не могу открыть $fl!";
    6. } else {
    7. while (!feof($fp)){
    8. $data .= fgets($fp,2);
    9. }
    10. fclose($fp);
    P.S. За фигурные скобки не беспокойтесь, просто объясняю поэтапно.

    2) Затем мне надо обрезать данные:
    Код (Text):
    1.  
    2. $data = strstr($data, "</IFRAME>"); // Сначала обрезаю до сюда, так как в $data есть ДВА места со строкой "Город: ", поэтому обрезую сначала тут.
    3) Затем я обрезаю до момента начала вывода города:
    Код (Text):
    1.  
    2. $data = strstr($data, "Город: ");
    4) Теперь мне остается главное - убрать всю остальную порнографию, которая останется после надписи вывода города, поэтому я делаю сначала так:
    Код (Text):
    1.  
    2. $data2 = strstr($data, "<br>"); //<br>, который идет СРАЗУ после надпись "Город: [тут город]".
    А потом уже удаляю оставшуюся часть так:
    Код (Text):
    1.  
    2. $ddd = eregi_replace($data2, $data, $ddd);
    3. $townIp = $ddd; // Это сам вывод города
    По идее должна остаться только надпись Город: Тольятти (к примеру), но данные вообще пустые, будто я урезал всё... Может проверите? Посмотрите, что не так?

    Добавлено спустя 4 минуты 33 секунды:
    Кажется понял...
    Код (Text):
    1. $ddd = str_replace($data2, "", $data);
    Добавлено спустя 3 минуты 26 секунд:
    На localhost скрипт работает, а на купленном сайте - нет...
    Вот что выдает:
     
  18. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    погоди....они же массив вроде возвращают, чего ты там режешь-то?
    а в файл ты зачем эти данные пишешь?
    возьми из массива только город да и все.....

    ну и имя говнохостера в студию!
     
  19. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Нет, если вы проверите мой скрипт (естественно, с соблюдением фигурных скобок), то вы заметите, что на localhost он в $townIp возвратит вам только "Город: " (именно, ПУСТО). А если сунуть на мой сайт (tsk-rika.ru, хостинг zerver.ru, DNS надо?), то он выдаст эту ошибку, а в $townIp примет значение Не могу открыть http://ip-whois.net/ip_geo.php?ip=255.255.255.255

    Вот такая вот история.
    Ладно, пора отдыхать мне. Уже с утра за компом с этой проблемой разбираюсь. Заказчик увидел разные сайты и говорит - это хочу, то хочу, это хочу.. Приходится делать.. Так что отвечу на ваш ответ завтра. До связи

    Добавлено спустя 1 минуту 56 секунд:
    И он считывает строки. Если Вы сразу после считывания вставите
    Код (Text):
    1.  
    2. echo $data
    в пустой странице, то вы просто увидите страницу http://ip-whois.net/ip_geo.php?ip=255.255.255.255, какой бы она загрузилась при значении ip. Вот..
     
  20. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    а что ты хотел от бесплатного хостинга.....или заказчик не может найти 100 рублей в месяц на хостинг? Или ты так втихую наепываешь заказчика, беря с него по 500 в месяц за хостинг а хостишься бесплатно?
     
  21. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Хостинг бесплатный.. Регистрация, точнее.. А за домен платить 280 рублей в год. Активация доп. домена на хостинге еще 35 центов в месяц.. то есть выходит больше 400 рублей в год.. и заказчика я не обманываю. фирма всё-таки, а не дядя-энтузиаст..
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    фирма йопт...
     
  23. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    xD
    Ждем ответа поддержки
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    иди уроки делай, а то из фирмы выгонят
     
  25. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти