Php вывести адрес домена

Whois, как получить данные IP-адреса и домена в PHP

Несколько примеров как в PHP получить информацию о домене и IP-адресе.

Информация о IP

Получить информацию об IP-адресе можно с помощью сервиса WHOIS REST API, отправив запрос на http://rest.db.ripe.net/search?query-string= xxx.xxx.xxx.xxx
Ответ будет в формате XML.

$ip = '213.180.193.1'; $xml = simplexml_load_string(file_get_contents('http://rest.db.ripe.net/search?query-string=' . $ip)); $array = json_decode(json_encode($xml), TRUE); $data = array(); foreach ($array['objects'] as $row) < foreach ($row as $row2) < foreach ($row2['attributes'] as $row3) < foreach ($row3 as $row4) < $data[$row4['@attributes']['name']][] = $row4['@attributes']['value']; >> > > print_r($data);

Результат:

Array( [inetnum] => Array( [0] => 213.180.193.0 - 213.180.193.255 ) [netname] => Array( [0] => YANDEX-213-180-193 ) [status] => Array( [0] => ASSIGNED PA ) [country] => Array( [0] => RU ) [descr] => Array( [0] => Yandex enterprise network [1] => Yandex enterprise network ) [admin-c] => Array( [0] => YNDX1-RIPE [1] => PGR777-RIPE ) [tech-c] => Array( [0] => YNDX1-RIPE [1] => EM3673-RIPE [2] => AUR2-RIPE ) [remarks] => Array( [0] => INFRA-AW [1] => trouble: ------------------------------------------------------ [2] => trouble: Points of contact for Yandex LLC Network Operations [3] => trouble: ------------------------------------------------------ [4] => trouble: Routing and peering issues: noc@yandex.net [5] => trouble: SPAM issues: abuse@yandex.ru [6] => trouble: Network security issues: abuse@yandex.ru [7] => trouble: Mail issues: postmaster@yandex.ru [8] => trouble: General information: info@yandex.ru [9] => trouble: ------------------------------------------------------ ) [mnt-by] => Array( [0] => YANDEX-MNT [1] => YANDEX-MNT [2] => YANDEX-MNT ) [created] => Array( [0] => 2011-08-30T09:34:57Z [1] => 2002-06-07T05:35:50Z [2] => 2012-02-09T15:59:56Z ) [last-modified] => Array( [0] => 2014-03-26T08:38:45Z [1] => 2018-08-03T07:15:46Z [2] => 2012-02-09T15:59:56Z ) [source] => Array( [0] => RIPE [1] => RIPE [2] => RIPE ) [role] => Array( [0] => Yandex LLC Network Operations ) [address] => Array( [0] => Yandex LLC [1] => 16, Leo Tolstoy St. [2] => 119021 [3] => Moscow [4] => Russian Federation ) [phone] => Array( [0] => +7 495 739 7000 ) [fax-no] => Array( [0] => +7 495 739 7070 ) [nic-hdl] => Array( [0] => YNDX1-RIPE ) [abuse-mailbox] => Array( [0] => abuse@yandex.ru ) [route] => Array( [0] => 213.180.193.0/24 ) [origin] => Array( [0] => AS13238 ) )

Информация о домене

С доменами сложнее, т.к. нужно отправлять TCP запрос (43-й порт) на WHIOS-сервер в зависимости от зоны домена, полный список whois-серверов.

Читайте также:  Деление нацело питон символ

Основные зоны

Зона Сервер
.ru, .su, .рф whois.tcinet.ru
.com, .net whois.verisign-grs.net
.org whois.pir.org
$server = 'whois.tcinet.ru'; $host = 'yandex.ru'; $socket = fsockopen($server, 43); if ($socket) < fputs($socket, $host . PHP_EOL); $text = ''; while (!feof($socket)) < $text .= fgets($socket, 128); >fclose($socket); echo $text; >

Результат:

% By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). domain: YANDEX.RU nserver: ns1.yandex.ru. 213.180.193.1, 2a02:6b8::1 nserver: ns2.yandex.ru. 93.158.134.1, 2a02:6b8:0:1::1 nserver: ns9.z5h64q92x9.net. state: REGISTERED, DELEGATED, VERIFIED org: YANDEX, LLC. registrar: RU-CENTER-RU admin-contact: https://www.nic.ru/whois created: 1997-09-23T09:45:07Z paid-till: 2019-09-30T21:00:00Z free-date: 2019-11-01 source: TCI Last updated on 2019-04-10T13:26:32Z

Сервис для проверки IP и доменов

Есть хороший API сервис «ip-api», возвращает информацию о домене, IP-адресе + геолакацию. Не требует регистрации и ключей, ограничение 150 запросов в минуту с одного IP-адреса, но не для коммерческого использования.

$host = 'yandex.ru'; $json = file_get_contents('http://ip-api.com/json/' . $host . '?lang=ru'); $array = json_decode($json, TRUE); print_r($array);
Array ( [as] => AS13238 YANDEX LLC [city] => Москва [country] => Россия [countryCode] => RU [isp] => Yandex enterprise network [lat] => 55.734 [lon] => 37.5883 [org] => Yandex LLC [query] => 5.255.255.80 [region] => MOW [regionName] => Москва [status] => success [timezone] => Europe/Moscow [zip] => )

Источник

How to get the current domain name using PHP

The $_SERVER array is a global variable that contains server and header information.

To get the domain name where you run PHP code, you need to access the SERVER_NAME or HTTP_HOST index from the $_SERVER array.

Suppose your website has the URL of https://example.com/post/1 . Here’s how you get the domain name:

If you are using Apache server 2, you need to configure the directive UseCanonicalName to On and set the ServerName .

Otherwise, the ServerName value reflects the hostname supplied by the client, which can be spoofed.

Aside from the SERVER_NAME index, you can also get the domain name using HTTP_HOST like this:

The difference is that HTTP_HOST is controlled from the browser, while SERVER_NAME is controlled from the server.

If you need the domain name for business logic, you should use SERVER_NAME because it is more secure.

Finally, you can combine SERVER_NAME with HTTPS and REQUEST_URI indices to get your website’s complete URL.

See the code example below:

Now you’ve learned how to get the domain name of your website using PHP. Nice!

Take your skills to the next level ⚡️

I’m sending out an occasional email with the latest tutorials on programming, web development, and statistics. Drop your email in the box below and I’ll send new stuff straight into your inbox!

About

Hello! This website is dedicated to help you learn tech and data science skills with its step-by-step, beginner-friendly tutorials.
Learn statistics, JavaScript and other programming languages using clear examples written for people.

Type the keyword below and hit enter

Tags

Click to see all tutorials tagged with:

Источник

Как в PHP получить URL? Получение текущей ссылки в PHP. Переменная $_SERVER

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

Первое, о чём следует сказать, — зачем вообще получать ссылки (urls) в PHP? На практике варианты могут различаться. Представьте, что у нас для разных разделов применяется один и тот же шаблон. И возникает потребность в том, чтобы вывести (либо не вывести — зависит от ситуации) какой-нибудь специальный блок, причём в других разделах вывод этого блока не нужен.

В большинстве случаев мы пожелаем выполнить поставленную задачу по условию. То есть сделаем условие, в котором будем выполнять проверку того либо иного раздела. Можно сказать, что с точки зрения архитектуры данное решение не является оптимальным. Но на практике нам нередко достаются уже реализованные проекты, с которыми необходимо что-то решать с учётом уже имеющейся архитектуры.

Но давайте не будем много говорить, а лучше приступим к решению поставленной задачи — получению ссылки в PHP.

Получение ссылки текущей страницы в PHP

Для получения данных нужно обратиться к глобальной переменной в PHP, которая называется $_SERVER. Переменная $_SERVER представляет собой массив, содержащий много полезной информации. На практике $_SERVER может получать любые данные о текущем URL: — доменное имя; — название скрипта; — параметры URL.

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

Идём дальше. Представьте, что у вас есть web-страница, имеющая следующий вид: http://localhost/php-lessons/url/?name=anna&city=Valencia. Тестирование в данном примере осуществляется на локальном сервере. Если надо тестировать код на реальном веб-сайте, доступном в интернете, достаточно вместо localhost прописать имя сайта (домен) — тот же otus.ru.

Что же мы увидим в подопытном url? Нас могут интересовать следующие данные: — адрес веб-страницы без GET-параметров; — URL с GET-параметрами; — непосредственно GET-параметры без текущей ссылки (адреса веб-страницы).

Лучше всего разобраться с каждым из случаев по отдельности — так будет гораздо понятнее.

Получение полного URL в PHP

Для получения полного URL вместе с имеющимися GET-параметрами, пригодится следующий код:

 
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo $url;

Что здесь что? В первую очередь, осуществляется проверка, какой именно протокол передачи данных задействуется: https или http. В случае, если значение $_SERVER[‘HTTPS’] не является пустым, речь идёт о протоколе https, в обратном случае — http.

На втором этапе выполняется присоединение двоеточия и двух слэшев, имени домена и остальной части URL.

Итог выполнения кода будет следующим:

Screenshot_1-1801-0dd7a2.png

Если протокол получать не требуется, код на PHP можно немного сократить:

Screenshot_2-1801-d9667c.png

Смотрим на результат и видим, что протокол отсутствует:

Screenshot_3-1801-8cafa5.png

Получение URL в PHP без GET-параметров

Иногда эти параметры, передаваемые в качестве части ссылки, нас не интересуют, то есть требуется получить адрес без них. Мы говорим о следующих параметрах: name=anna&city=Valencia.

В действительности их можно отсечь, используя функцию explode в PHP, разбивающую строку по разделителю. Не стоит объяснять, что ссылка представляет собой строку, а параметры GET начинают прописываться после «?». В результате вопросительный знак и станет разделителем, а функция explode сделает из строки массив с 2-мя элементами. Первый элемент станет содержать искомую ссылку без GET-параметров, так как эти самые параметры останутся во втором элементе.

Код на PHP с использованием переменной $_SERVER будет выглядеть так:

Screenshot_4-1801-24d62c.png

Screenshot_5-1801-7fbe83.png

Получение только параметров GET

Эта операция тем более не вызывает сложностей. В данном случае код с использованием переменной $_SERVER будет выглядеть следующим образом:

Screenshot_6-1801-41b5aa.png

С помощью этого кода получим:

Screenshot_7-1801-1863fc.png

Это всё. Надеемся, что теперь вы знаете, как происходит получение PHP ссылки и как работает глобальная переменная $_SERVER. Если же интересуют более продвинутые знания, записывайтесь на курсы OTUS!

Источник

Оцените статью