Как узнать ip адрес сайта?

Использование Nslookup

Это старейшая утилита командной строки для работы с DNS. Простой пример использования можете видеть ниже — nslookup <адрес сайта>


или так:

Вот те раз! 4 адреса?  Ответ уже другой и требует пояснений.  Несколько ip-адресов — это  нормально для крупных сайтов, каковым безусловно является mail.ru.  Попробуйте узнать ip Google или Вконтакте. Так происходит потому, что эти сайты обслуживают множество пользователей и чтобы справляться с большим потоком они располагаются на нескольких серверах в интернете, а их доменное имя направлено ip-адреса этих нескольких серверов

Для пользователя неважно на какой из ip он попадет

Имеет место также  и обратное явление — когда на один ip-адрес направлены несколько доменов. Это обычная ситуация для виртуальных хостингов — на одном сервере могут находиться множество сайтов, и все их домены будут вести на IP одного сервера.

Первая строка в ответе nslookup означает не что иное как адрес ближайшего по отношению к вам DNS. При необходимости его можно изменять и обращаться к какому-то конкретному серверу, например к публичному DNS Google  8.8.8.8. Но это обычно бывает необходимо только системным администраторам для диагностики и анализа.

Стоит ли говорить, что абсолютно любые программы и онлайн сервисы для определения IP тоже используют ping и nslookup? Кроме того, есть еще один очень мощный инструмент dig, который является аналогом nslookup. Он более новый и доступен только в nix-системах.

В чем разница между ping и nslookup при определении IP?

Повторюсь, на самом деле в них встроен одинаковый механизм. Nslookup это довольно мощный инструмент который предназначен непосредственно  для подобных запросов и отображает более полную и подробную информацию. Ping же не всегда покажет вам ответ в виде echo-пакетов, однако ip-адрес она определит если это возможно. Ну и как видно из примера — ping сработает как браузер, и покажет вам только тот ip, который  был выбран DNS-балансировщиком  именно на ваш запрос.

Вообще тема определения IP очень обширна. О DNS написаны целые книги, используются громадные мощности. Это целая отрасль в администрировании, фундаментальные основы которой я постарался кратко описать и надеюсь у вас больше никогда не возникнет проблемы с определением ip адресов сайтов и доменов.

Определение страны и города по ip через сервис через сервис ipstack


Рассмотрим ещё один вариант определения в php местоположения по ip посетителя, но уже не через Sypex Geo, а с помощью сервиса ipstack.

Сервис ipstack имеет бесплатный план, который позволяет обрабатывать до 10000 запросов в месяц.

Для получения бесплатного плана нажимаем на кнопку «GET FREE API KEY» и переходим на страницу, на которой нужно заполнить регистрационную карточку.

После регистрации, на личной странице ipstack вам будет назначен «API Access Key», который нужно скопировать. Он нам потребуется при создании php скрипта.

<?php
// получим ip адрес клиента
$ip = $_SERVER;
// переменная $access_key должна содержать ваш API Access Key
$access_key = '...';
// инициализируем новый сеанс cURL
$ch = curl_init('http://api.ipstack.com/'.$ip.'?access_key='.$access_key.'');
// если нужно выбрать только страну, то можно так
//$ch = curl_init('http://api.ipstack.com/'.$ip.'?access_key='.$access_key.'&fields=country_code');
// устанавливаем параметр для указанного сеанса cURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// выполняем запрос cURL и сохраняем данные в $json
$json = curl_exec($ch);
// завершаем сеанс cURL
curl_close($ch);
// декодируем JSON ответ
$api_result = json_decode($json, true);

// получаем ISO-код страны
$county_code = $api_result;
// получаем название региона
$region_name = $api_result;
// получаем название города
$city = $api_result;

Как узнать URL-адрес любого сайта

Самый простой способ – это скопировать URL с адресной строки браузера, но для этого нужно зайти на сайт, который вас интересует. Если вам нужен адрес, по которому расположен какой-то файл (например, изображение), тогда необходимо кликнуть правой кнопкой мыши по этому файлу и нажать пункт «Скопировать URL изображения».

Когда вы копируете адрес, он помещается в буфер обмена. Далее можно вставить его в любой текстовый файл или сообщение.

Если УРЛ неизвестен, тогда нам на помощь приходят поисковые системы. Зная только лишь название сайта и введя его в поисковую строку, поисковик обязательно покажет нам этот сайт:

ВАЖНО!

Если сайт, который вы ищите, не проиндексирован поисковыми системами, то таким способом его найти не удастся. Как проверить индексацию сайта.

Важность URL для SEO-продвижения

Имейте ввиду, что адрес вашего сайта и адресация страниц важны при SEO- продвижении. В последнее время наблюдается тенденция изменения интернет-адресов на более понятные и читаемые. SEO-оптимизаторы используют такое выражение как «человекопонятный УРЛ» (ЧПУ).

Пример ЧПУ на нашем сайте:

Здесь четко можно увидеть иерархию разделов и подразделов: раздел – «Продвижение сайтов», услуга – «Недорогое продвижение сайтов».

А вот так будет выглядеть сайт Без ЧПУ: https://iqad.ru/id=123&dhkjash=64 — набор символов, по которому нельзя разобрать, что кроется за ссылкой, не может считаться человекопонятным.

Правильно составленный УРЛ страницы – это один из важнейших факторов ее ранжирования. Адрес страницы может создаваться в автоматическом режиме с помощью CMS-системы, на которой работает сайт, но это можно делать и вручную. 

Одним из аспектов при составлении URL является наличие ключевых запросов. Это касается не только главной (желательно, чтобы домен содержал главное ключевое слово сайта), но и каждой второстепенной страницы ресурса.

Релевантность страницы определяется по множеству факторов: контент, его соответствие заявленной тематике, уникальность и т.д. В этот список также входит ЧПУ, который, как следствие, имеет влияние на выдачу.

Длина УРЛа имеет огромное значение еще на этапе, когда пользователь видит ссылку на сайт в ленте выдачи. Оптимизация сетевого адреса по канонам SEO предполагает не более 5 слов в URL, чтобы адрес отображался полностью. Структура сайта отображается в УРЛе (главная – раздел — подраздел), поэтому вложенность папок должна быть 3-4 уровневая, чтобы адрес был не очень длинным.

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


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

// сохраним в переменную ip значение IP адреса клиента
$ip = $_SERVER;

Но, если клиент использует прокси-сервер, то значение будет содержать IP последнего прокси-сервера, через который клиент попал на сайт.

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

function getIp() {
  $keys = ;
  foreach ($keys as $key) {
    if (!empty($_SERVER)) {
      $ip = trim(end(explode(',', $_SERVER)));
      if (filter_var($ip, FILTER_VALIDATE_IP)) {
        return $ip;
      }
    }
  }
}

$ip = getIp();
// выведем IP клиента на экран
echo 'ip = ' . $ip;  

Как выбрать домен для сайта

Выбирая домен для вашего бизнеса, учитывайте специфику доменных имен и классификацию доменов. На сегодняшний день, самым распространенным будет покупка домена 2-уровня в одной из доменных зон или доменов верхнего уровня. Домены верхнего уровня (top—level domain, TLD) делятся на несколько основных групп.

Домены стран или территориально-языковые доменные зоны (country code top-level domain, ccTLD). Например:

  • .ru, .рф – Россия;
  • ua – Украина;
  • us — Соединённые Штаты;
  • .MSK.RU – Москва;
  • eu — Европейский Союз.

Домены общего назначения (generic Top-Level Domain, gTLD). Например:

  • .com (commercial) — для сайтов компаний занимающихся коммерческой деятельностью;
  • .org (organizations) — сайтов некоммерческих организаций;
  • .info (information) — как правило для информационных ресурсов. Домен доступный для всех.

Служебные или инфраструктурные домены (infrastructure top-level domain, iTLD). Для коммерческих организаций не имеют ценности.  Например:

.arpa — с 1985 года домен используется для инфраструктурных нужд сети Интернет.

3) Адрес документа (страницы). Дальнейшее содержание URL обусловлено структурой разделов ресурса.

Пример реализации определения локации в CMS MODX

В качестве примере рассмотрим, как в CMS MODX Revolution можно очень просто без сторонних сервисов осуществить определение страны посетителя. Разработаем решение на базе Sypex Geo.

1. Для этого сначала нужно загрузить Sypex Geo в проект:

Файл «SxGeo.php» – это основной скрипт, а «SxGeo.dat» – это база стран. Этих двух файлов достаточно для определения страны пользователя по его ip. Дополнительно в каталоге SxGeo ещё расположен файл «SxGeoCity.dat», данный файл в текущей реализации не нужен, он может потребовать, если в проекте потребуется определять не только страну пользователя, а ещё его регион и город.


2. Создадим сниппет, например «get_location.php». В качестве примера организуем это с помощью файлов. Для этого нужно чтобы был установлен pdoTools и в настройках включена опция «Использовать Fenom на страницах».

Код сниппета «get_location.php»:

<?php
$country = '';
$ip = $_SERVER;
include MODX_CORE_PATH.'/elements/SxGeo/SxGeo.php';
$SxGeo = new SxGeo(MODX_CORE_PATH.'/elements/SxGeo/SxGeo.dat', SXGEO_MEMORY);
$country = $SxGeo->getCountry($ip);
unset($SxGeo);
$modx->setPlaceholder('countrycode', $country);
return;

Поместим файл «get_location.php» в каталог .

Данный сниппет будет определять страну и помещать его код в плейсхолдер .

3. После этого в нужных шаблонах поместим код вызова сниппета и сохранение значение плейсхолдера countrycode в переменную .

{$_modx->runSnippet('@FILE snippets/get_location.php')}
{set $country_code = $_modx->getPlaceholder('countrycode')}

Всё теперь чтобы написать логику достаточно использовать эту переменную.

Например:

{if $country_code = 'UA'}
Код для Украины
{else}
Код для других стран
{/if}

С этим читают