Php определить кто i

Как мне получить провайдера посетителя через PHP?

Как узнать провайдера ISP человека, просматривающего страницу PHP? Можно ли использовать PHP для отслеживания или обнаружения? Если я использую что-то вроде следующего:

gethostbyaddr($_SERVER['REMOTE_ADDR']); 

12 ответов

(.*?)(.*?)/s',$url,$output,PREG_SET_ORDER); $isp=$output[1][2]; $city=$output[9][2]; $state=$output[8][2]; $zipcode=$output[12][2]; $country=$output[7][2]; ?>  
ISP : City : State : Zipcode : Country :

Это нарушает Условия использования : «Вы не можете использовать скрипт, агент, приложение или иным образом запрашивать этот сайт в автоматическом режиме без предварительного письменного разрешения».

@JeffWinkworth Как кто-нибудь может узнать, кто сканирует их сайт? И, следовательно, что такое использование Условий обслуживания в этом случае.

@عثمانغني عثمانغني Я не сразу знаю об альтернативе, но это не делает это «решение» более приемлемым. Нарушение TOS является нарушением TOS.

@Ankit, потому что GET из скрипта выглядит очень иначе, чем обычный пользовательский запрос; вспомогательные ресурсы (например, CSS, изображения) не загружаются вместе со страницей, заголовки запроса различаются и т. д. На самом деле довольно просто использовать программное обеспечение, такое как graylog, чтобы найти такие запросы (и их исходный IP, который затем попадает в черный список)

Похоже, что whatismyipaddress создал API для людей, который использует » whatismyipaddress.com/api «. Это гораздо лучше, чем нарушать TOS. Кто-нибудь еще пробовал?

Это похоже на то, что вы ищете, оно попытается вернуть полное имя хоста, если это возможно:

Вы не получили .. Как вы находите поставщика услуг, используя это? Пожалуйста, сделайте пояснение, если можете

Эта функция, как любой вид поиска RDNS (обратный DNS), работает только в том случае, если на IP-адресе есть зарегистрированная запись RDNS. Также помните, что все зарегистрированные доменные имена имеют IP-адреса, но не все IP-адреса имеют связанный домен.

В заголовках HTTP ничего нет, чтобы указать, какой из ISP пользователь приходит, поэтому ответ отрицательный, не существует встроенной функции PHP, которая вам скажет. Вам придется использовать какой-то сервис или библиотеку, которая отображает IP-адреса в сетях/интернет-провайдерах.

Почему бы не использовать API ARIN REST.

 Handle: net->handle->> Ref: net->ref->> Name: net->name->> echo "OrgRef: net->orgRef->>";

END; // eof

Использование REST API ARIN исключительно для определения имени провайдера является нарушением их TOU: arin.net/resources/registry/whois/tou

Иногда меняются поля, поэтому это улучшение вышеприведенного сообщения.

  (.*?)"; > > > ?>
(.*?)/s',$url,$output,PREG_SET_ORDER); for ($q=0; $q < 25; $q++) < if ($output[$q][1]) < if (!stripos($output[$q][2],"Blacklist")) < echo "
".$output[$q][1]."".$output[$q][2]."

Вы не можете полагаться ни на IP-адрес, ни на имя хоста, чтобы знать, кто использует ISP. Фактически, он вообще не может использовать интернет-провайдера, или он может войти в систему через VPN-соединение с его местом работы, оттуда используя другой VPN или удаленный рабочий стол для службы хостинга на полпути по всему миру и подключиться к вам из этого, IP-адрес, который вы получите, будет иметь тот, который находится на последней удаленной машине или на каком-то брандмауэре, который сидит за машиной, которая может быть где-то еще.

Существует библиотека php для доступа к данным геоинформации: http://www.maxmind.com/app/php

Внимание, однако, вам нужно поместить geoip db на свой компьютер, чтобы он работал, все инструкции есть:)

geoip_isp_by_name — получить имя поставщика услуг Интернета (ISP)

Я попытался исправить ответ Рама Кумара, но всякий раз, когда я редактировал их сообщение, я был бы временно запрещен, и мои изменения были проигнорированы. (Что касается того, почему, я не знаю, это было мое первое и единственное редактирование, которое я когда-либо делал на этом сайте.)

С момента своего сообщения его код больше не работает из-за изменений веб-сайта, а администратор выполняет базовые проверки ботов (проверка заголовков):

 array('method' => 'GET', 'header' => "User-Agent: $User_Agent\r\nAccept: $Accept\r\nAccept-Language: $Accept_Language\r\nReferer: $Referer\r\nConnection: $Connection\r\n\r\n")))); preg_match_all('/(.*?)(.*?)/s', $HTML, $Matches, PREG_SET_ORDER); $ISP = $Matches[3][2]; $City = $Matches[11][2]; $State = $Matches[10][2]; $ZIP = $Matches[15][2]; $Country = $Matches[9][2]; ?>  
ISP : City : State : Zipcode : Country :

Обратите внимание, что просто поставка агента-пользователя, вероятно, будет достаточным, и дополнительные заголовки, скорее всего, не требуются, я просто добавил их, чтобы сделать запрос более аутентичным.

Источник

Как получить IP через PHP для сервера и пользователя

php-uznat-ip-adres

Доброго времени суток 🙂

На практике часто возникает необходимость узнать IP в PHP скрипте сайта. Причём, это может быть как IP адрес сервера, так и посетителя, производящего действия на вашем ресурсе.

Причём, последний иногда может пользоваться сайтом не напрямую, а по каким-то причинам подключаясь к нему через прокси сервер. Этот случай усложняет жизнь тем, что для подключения используется изменённый IP адрес.

Но, к счастью, в PHP получить IP адрес как клиента, так и самого сайта в этом случае более, чем реально. Причём, для этого не потребуются никакие специальные библиотеки и средства движков сайтов. Всё необходимое уже есть в самом PHP «на борту».

Нам осталось только пользоваться 🙂

Как в PHP узнать IP сервера

Вся необходимая информация об IP сервера, да и пользователя тоже, в PHP доступна через суперглобальный массив $_SERVER. Однако, помимо перечисленных данных он содержит ещё много различной информации.

В этой ситуации отыскать нужное становится непростой задачей, для решения которой нужно знать назначение переменных массива.

В частности, для того, чтобы в PHP определить IP адрес сервера, в коде нужно прописать следующую конструкцию:

Данный PHP код позволит вам вывести на экран IP адрес сервера, на котором он запускается. Это же значение будет и IP адресом сайта, если он вам где-нибудь понадобится.

Как в PHP получить IP посетителя

Для определения в PHP IP пользователя, с которого он подключается к вашему сайту, мы воспользуемся тем же массивом $_SERVER. В данном случае нас будет интересовать переменная REMOTE_ADDR, содержимое которой можно вывести на экран привычным способом:

Однако, в случаях использования клиентом прокси соединений, т.е. когда при подключении трафик идёт через сторонний прокси сервер, данная переменная будет содержать IP адрес не посетителя, а прокси сервера.

Чтобы узнать в PHP IP адрес посетителя в данном случае, нужно воспользоваться другим способом.

http://cccp-blog.com/wp-includes/images/banners/templatemonster/banner_content_mobile.png

Как в PHP определить IP пользователя, использующего прокси

Первым делом, в PHP IP посетителя при использовании прокси можно попробовать получить следующим способом:

Данный код можно найти практически во всех PHP скриптах, определяющих реальный IP посетителя. Однако, мало кто может объяснить, что хранится в данной переменной.

Если прописать данный код у себя в сайте на локальном сервере, то вы вообще получите пустое значение, т.е. данной переменной в массиве $_SERVER у вас не окажется. И это не удивительно, т.к. в HTTP_CLIENT_IP хранится глобальный IP пользователя, т.е. его адрес в сети Интернет.

И, самое главное, что на это значение не влияет прокси соединение, т.е. здесь вы найдёте реальный IP пользователя, а не его прокси сервера.

Если по каким-то причинам данная переменная будет отсутствовать в PHP $_SERVER, то можете попробовать узнать IP адрес клиента ещё и таким способом:

В данную переменную прокси сервера сами помещают реальный IP посетителя.

Таким образом, для того, чтобы в PHP узнать IP клиента гарантированно, можно использовать следующую конструкцию:

Данный скрипт выведет на экран значение переменной $ip, в которую при использовании прокси соединения будет записан глобальный IP посетителя. Если же его не будет найдено в PHP $_SERVER, то скрипт попытается узнать IP пользователя, записанный самим прокси сервером.

Если же ни одной переменной не будет присвоено значение, то с большой вероятностью можно предположить, что посетитель не использует прокси либо прокси сервер не предоставляет реальный IP посетителя. В этом случае, чтобы получить хоть какое-то значение IP, мы берём его из REMOTE_ADDR. Но, с высокой долей вероятности, это значение будет IP адресом прокси сервера (благо, что ими не пользуется абсолютно каждый клиент сайтов).

Для проверки существования значений переменных я, как видите, решил воспользоваться PHP функцией filter_var, которая фильтрует переменные с применением определённого фильтра (шаблона), которым в данном случае является FILTER_VALIDATE_IP.

В завершение хочу подытожить, что описанным выше способом, несмотря на все тщательные проверки всех возможных серверных переменных PHP, определить IP пользователя с использованием прокси всё равно не получится на 100%.

Дело в том, что IP адрес клиента предоставляют только определённый тип прокси серверов, которые называют «прозрачными». Как правило, это открытые службы.

Библиотека курсов

Если же ваш пользователь решил скрыть свой реальный IP с помощью коммерческого непрозрачного прокси, то шансы узнать его реальный адрес стремятся к нулю. Благо, что процент таковых клиентов совсем невелик, так что приведённая финальная версия скрипта поможет вам в большинстве случаев.

Оставляйте свои отзывы в комментариях — что понравилось, что нет, может быть, о чём-то следовало бы рассказать поподробнее… Мне интересно любое ваше мнение.

P.S.: если вам нужен сайт либо необходимо внести правки на существующий, но для этого нет времени и желания, могу предложить свои услуги.

Более 5 лет опыта профессиональной разработки сайтов. Работа с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular и другими технологиями web-разработки.

Опыт разработки проектов различного уровня: лендинги, корпоративные сайты, Интернет-магазины, CRM, порталы. В том числе поддержка и разработка HighLoad проектов. Присылайте ваши заявки на email cccpblogcom@gmail.com.

И с друзьями не забудьте поделиться 😉

Источник

Узнать id

Добрый день! Делаю что- то вроде тикет системы (на одной странице много бланков заявок). В правом вверхнем углу этого тикета у меня есть кнопка закрыть заявку( реализованно иконкой) при нажатии на которую открываеться модальное окно и необходимо выбрать параметры для закрытия. Проблема в том что я не могу сообразить как определить ID тикета. Пробывал делать выборку из бд, но тогда определяеться либо первый ид либо последний, а надо текущий тикет которого надо закрыть. Подскажите пожалуйста как реализовать(в приоритете без js).

Собственно создание тикета :

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
 include 'mysql.php'; $count = mysql_query("SELECT system,sensor,detected,DATE_FORMAT(data_detected,'%d.%m.%Y %H:%i:%s') AS data_detected,transferred,corrected,DATE_FORMAT(data_corrected,'%d.%m.%Y %H:%i:%s') AS data_corrected,id,area,description,Image,status FROM blanks WHERE status='Открыта'") or die(mysql_error()); while ($row_blank=mysql_fetch_array($count)) { echo '      № Заявки: '.$row_blank['id'].'  Статус: '.$row_blank['status'].'  Система: '.$row_blank['system'].'   Обнаружил: '.$row_blank['detected'].'   Дата обнаружения: '.$row_blank['data_detected'].'   Передано: '.$row_blank['transferred'].'   Устранил: '.$row_blank['corrected'].'   Дата устранения: '.$row_blank['data_corrected'].'       Участок: '.$row_blank['area'].' 
Устройство\Датчик: '
.$row_blank['sensor'].' '.$row_blank['description'].'
'; echo '
'; //вывод комментариев $blank_id =$row_blank['id'];// Уникальный идентификатор заявки $result_set = mysql_query("SELECT id,blank_id,com,user,DATE_FORMAT(data,'%d.%m.%Y %H:%i:%s') AS data FROM comments WHERE blank_id='$blank_id'"); //Вытаскиваем все комментарии для данной заявки while ($row_comments = mysql_fetch_assoc($result_set)) { echo '

Прокомментировал: '.$row_comments['user'].'
Дата: '.$row_comments['data'].'

'.$row_comments['com'].'

'
;//Вывод комментариев } echo '

.$row_blank['id'].'" />
'
; } ?>
1 2 3 4 5 6 7 8 9 10 11 12 13
 header('Content-Type: text/html; charset=utf8'); if (isset($_POST['FIO'])) { $fio = $_POST['FIO']; $date = date('Y-m-d, H:i:s'); include "mysql.php"; $close_result = mysql_query("UPDATE blanks SET corrected='$fio',data_corrected='$date',status='Закрыта' WHERE >$blank_id") or die(mysql_error()); if ($close_result=='true') {header("Location:index.php"); mysql_close;} else {echo "Произошла ошибка, пожалуйста повторите попытку";}} ?>

Источник

Читайте также:  Python find files of type
Оцените статью