A PHP Error was encountered

Severity: 8192

Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Filename: mysql/mysql_driver.php

Line Number: 303

Подробная информация о IP пользователя на PHP

Подробная информация о IP-адресе пользователя на PHP

Автор: Mowshon.
Опубликовано 18 августа 2011
в рубрике PHP, Примеры

Просмотров: 5075.
Подписаться на комментарии по RSS.

Подробная информация о IP пользователя на PHP

В данной статье мы рассмотрим один способ, как с помощью PHP и зарубежного ресурса узнать всю информацию о IP, в плоть до место жительство на карте.

Данный способ может быть полезен при регистрации на сайте, администратор будет видеть из каких стран и городов к нему идут люди. Так-же можно использовать информацию о IP адресе в скрипте голосования и вывод последних голосов. Ну и в крайнем случае, если вы хотите пробить IP и узнать кто же этот негодяй который рассылает спам.

Мы будем работать с:

- Суперглобальным массивом $_SERVER

PHP-интерпретатор хранит данные, полученные от сервера в массив $_SERVER. Из данного массива нам понадобится только IP $_SERVER['REMOTE_ADDR']

- Библиотека PHP Simple HTML DOM Parser (Скачать)

1. Создаем файл ip-info.php в корень папки сайта

2. В папке где находится файл php-info.php, создаем папку libs и распаковываем содержимое скачанного выше архива simplehtmldom.rar. У вас должно быть такая иерархия /libs/simplehtmldom

В Файл ip-info.php добавляем текущие строки

<?php
/** Скрипт: Подробная информация о IP пользователя
 **	Источник: http://live-code.ru
 **/
 
// IP нужного нам пользователя
if(!isset($_GET['ip'])) {
	// Если IP не был задан нами в GET, получаем информацию о нашем IP
	$ip = $_SERVER['REMOTE_ADDR'];
}
 else {
 	// Ввели нужный нам IP, получаем информацию
 	$ip = addslashes($_GET['ip']);
 }
// Адрес донора информации о IP
$url = "http://whatismyipaddress.com/ip/". $ip;
// Браузер который увидет донор
$userAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)";
// При помощи Curl получим данные о IP
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
$Whatismyip = curl_exec($ch);
curl_close($ch);
// Подключаем библиотеку PHP Simple HTML DOM Parser
include_once ("libs/simplehtmldom/simple_html_dom.php");
$html = str_get_html($Whatismyip);
// Парсируем HTML
foreach($html->find('td') as $element) {
	$Data[] = trim($element->innertext);
}
// Финальные данные
// Обрабатываем данные пользователя
$host = strip_tags($Data[2]." - ".$Data[3]);
$country = strip_tags($Data[9]);
$region = strip_tags($Data[10]);
if(is_numeric($Data[11])) {$city=$Data[10];} else {$city=$Data[11];}
$city = strip_tags($city);
preg_match("#http://cdn.whatismyipaddress.com/images/flags/([a-z]+).png#", $Data[9], $match);
$flag = strtolower(substr($match[1], 0, 2));
$info = "Провайдер: ".$host."<br />";
$info .= "Страна: ".$country."<br />";
$info .= "Регион: ".$region."<br />";
$info .= "Город: ".$city."<br />";
$info .= "Код страны: ".$flag."<br />";
$info .= "Широта: ".$Data[12]."<br />";
$info .= "Долгота: ".$Data[13]."<br />";
// Выводим данные
echo $info;
?>

Заходим по адресу http://ваш-сайт.com/ip-info.php?ip=80.92.96.25

получаем такую информацию:

Провайдер: gw25.eth.zelcom.ru - AKADO-Stolitsa JSC
Страна: Russian Federation
Регион: Moscow City
Город: Moscow
Код страны: ru
Широта: 55.7522
Долгота: 37.6156

Как видим, все работает отлично!

Если хотите получить данные о вашем IP, просто не ставьте ip в адресной строке.

http://ваш-сайт.com/ip-info.php

Широтe и Долготу, можно ввести в Google Maps и получить место нахождения человека на карте по его ip.

Если будут вопросы или хотите дополнить, можете оставить их в комментариях ниже.

Комментариев: 7

  1. Зарик | 25.08.2011 в 01:03:23 | #1

    А вот насчет "получить место нахождения человека на карте" если данный скрипт вернул нам уже данные(Широта, Долгота) не совсем понял где их нужно ввести для получения картинки на карте...

    Будет ли статья с объяснениями работы данным скриптом + google maps ?

  2. Mowshon | 25.08.2011 в 14:41:32 | #2

    Зарик, спасибо за идею!

    Скоро появится статья с примерами работы google maps

  3. балабол | 03.05.2012 в 15:17:25 | #3

    А у меня оно чета не фурвчит =(

    Пишет:

    Warning: file_get_contents(http://whatismyipaddress.com/ip/80.92.96.25) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 503 Service Temporarily Unavailable in Z:\home\test1.ru\www\libs\simplehtmldom\simple_html_dom.php on line 39

    Я правдо тестировал на денвере

  4. балабол | 03.05.2012 в 15:21:17 | #4

    Да! =(

    и на сервере тоже нет :(

  5. балабол | 07.05.2012 в 02:09:50 | #5

    админы!

    ну помогите, в чем проблема со скриптом

  6. Mowshon | 09.05.2012 в 17:00:28 | #6

    балабол, действительно текущая версия скрипта перестала работать т.к. WhatIsMyIpAddress закрыл доступ для скриптов. Скоро обновлю статью с примером на curl

  7. Mowshon | 09.05.2012 в 17:14:17 | #7

    Код статьи обновлен. Спасибо за внимание к скрипту.

Оставьте комментарий!

Гость
Комментатор / хотите им стать

Чтобы стать комментатором введите email и пароль. Напишите комментарий. В дальшейшем ваша связка email-пароль, позволит вам комментировать и редактировать свои данные. Не забудьте про активацию (инструкция придет на ящик, указанный при регистрации).

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)