Получение whois-данных домена на PHP


WHOIS запрос на PHP

Достаточно простой whois скрипт для основных доменных зон:

Результат запроса для домена lenta.ru:

Также, вы можете использовать PHP whois класс, который понимает даже рф зоны.

Разделы

Полезное

PHP720 © 2011 — 2020

Поддержать проект

PayPal

Криптовалюты

  • Bitcoin: 1JR8KpXmRUVpUbTrxjddZattvWYGkEzd9i
  • Ethereum: 0x79810cbfc1de71db47a9062b8a665b3ee4e509ff
  • Litecoin: LfQcWEut7mdiWiLBoEjLjZZP2KVfNk8wxv
  • Dash: XhEBu2sqAf4747kBSzBiFoJXjwtXBr8VZZ

Whois сервис — проверить домен (узнать информацию о домене)

Для получения регистрационной информации от сервиса Whois введите имя домена и нажмите кнопку проверить.

Cервиcы сайта позволят проверить домен на занятость, получить регистрационную информацию по домену, подобрать домен для блога или сайта. На сайте вы сможете конвертировать домен в Punycode, проверить IP-адрес, узнать тИЦ и PR для сайта.

© 2008 — 2020 White Whois. Использование материалов сайта возможно только при указании ссылки на сайт.

Whois сервис на PHP

Чтобы организовать свой Whois сервис на PHP необходимо создать базу доменов и их Whois-серверов, с которых можно прочитать информацию по домену. Информацию для БД по доменам первого уровня ccTLD, gTLD, IDN (com, net, ru, ua и др) можно взять тут: www.iana.org .

IDN-домены записываются скриптом в кодировке Punycode

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

$query = ‘SELECT id, name
FROM table_domain_z
WHERE whois_server = «»
LIMIT 5′ ;
$result = mysql_query ( $query ) ;

$whois_search_txt = ‘whois:’ ;
$whois_strlen = strlen ( $whois_search_txt ) ;

while ( $row = mysql_fetch_assoc ( $result ) )
<
$con = @ fsockopen ( ‘whois.iana.org’ , 43 , $errno , $errstr , 5 ) ;
if ( $con )
<
$whois_server = » ;
fputs ( $con , $row [ ‘name’ ] . » \r \n » ) ;
while ( ! feof ( $con ) )
<
$response = fgets ( $con , 128 ) ;
if ( strstr ( $response , $whois_search_txt ) )
$whois_server = trim ( substr ( $response , $whois_strlen ) ) ;
>

$whois_server = ( empty ( $whois_server ) ) ? ‘whois.iana.org’ : $whois_server ;

$query = ‘UPDATE table_domain_z
SET whois_server = «‘ . mysql_real_escape_string ( $whois_server ) . ‘»,
WHERE > . $row [ ‘id’ ] ;
$result_upd = mysql_query ( $query ) ;
>
>

Поскольку каждый whois имеет свои ограничения по кол-ву запросов за определенное время, не стоит за 1 раз отсылать множество запросов. На момент написаня статьи существовало чуть более 300 доменов первого уровня, и если не спеша обновлять страницу, запускающую скрипт извлечения информации о whois-серверах доменов первого уровня, то за пару минут БД будет заполнена необходимой информацией. Конечно, если whois необходимо вермя от времени обновлять, то лучше всего запускать подобный скрипт с помощью журнала заданий (cron).

Далее уже не составит труда написать клиентскую часть whois-сервиса.

// .
// Проверка данных формы и whois-сервера для запрашиваемой зоны
// .

$con = @ fsockopen ( $row [ ‘whois_server’ ] , 43 , $errno , $errstr , 5 ) ;
if ( $con )
<
$response = » ;
fputs ( $con , $_POST [ ‘domain_name’ ] . » \r \n » ) ;
while ( ! feof ( $con ) )
<
$response .= fgets ( $con , 128 ) ;
>
>

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

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

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


например: проверить , DRGDRGDRGRGDRG.COM если данные Whois ответа есть слово No match for это означает , этот домен доступен.

Но теперь я хочу, чтобы проверить домен истекает срок использования данных WHOIS ответа, как это

Как я могу это сделать ? Спасибо

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

Я думаю, у нас есть два варианта здесь:

  1. Используйте некоторые библиотеки и когда это не удается разобрать строку
  2. Делайте все сами, не использовать любую библиотеку и разобрать вывод.

Я предлагаю начать с какой — то библиотеки , но я действительно не знаю «идеальный» один. Я собираюсь попробовать phpWhois . Если она не дает исходные данные , чтобы попытаться разобрать его самостоятельно.

Прежде всего , необходимо установить библиотеку. Я делаю это с помощью Composer . Ниже мой composer.json файл

Обратите внимание , что последняя phpWhois версия не работает с последней idna-convert версией, поэтому я должен указать это в моих требований.

Выполнить composer install для загрузки библиотеки.

И, наконец, PHP скрипт для запроса домена:

Требуется доменное имя в качестве первого аргумента сценария $argv[1] .

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

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

Whois и PHP

Иногда бывает нужно при анализе посещаемости сайта знать, из какой страны пришёл посетитель, а желательно и из какого города. В общем, получить какую-то дополнительную информацию на основе его IP-адреса. Для этого есть сервис whois, с которым можно работать, в том числе, и через PHP.

Итак, полный код для получения информации из whois c помощью PHP приведён ниже:

Вот такой несложный, но весьма полезный скрипт при анализе тех, кто посещает Ваши сайты. И всё это основано на работе сервиса whois и работе с ним через PHP.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 0 ):


    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    SaptakS / whois.php

    /* ************************************************************************
    php easy :: whois lookup script
    ==========================================================================
    Author: php easy code, www.phpeasycode.com
    Web Site: http://www.phpeasycode.com
    Contact: webmaster@phpeasycode.com
    ************************************************************************ */
    $domain = $_GET [ ‘ domain ‘ ];
    // For the full list of TLDs/Whois servers see http://www.iana.org/domains/root/db/ and http://www.whois365.com/en/listtld/
    $whoisservers = array (
    » ac » => » whois.nic.ac » , // Ascension Island
    // ad — Andorra — no whois server assigned
    » ae » => » whois.nic.ae » , // United Arab Emirates
    » aero » => » whois.aero » ,
    » af » => » whois.nic.af » , // Afghanistan
    » ag » => » whois.nic.ag » , // Antigua And Barbuda
    » ai » => » whois.ai » , // Anguilla
    » al » => » whois.ripe.net » , // Albania
    » am » => » whois.amnic.net » , // Armenia
    // an — Netherlands Antilles — no whois server assigned
    // ao — Angola — no whois server assigned
    // aq — Antarctica (New Zealand) — no whois server assigned
    // ar — Argentina — no whois server assigned
    » arpa » => » whois.iana.org » ,
    » as » => » whois.nic.as » , // American Samoa
    » asia » => » whois.nic.asia » ,
    » at » => » whois.nic.at » , // Austria
    » au » => » whois.aunic.net » , // Australia
    // aw — Aruba — no whois server assigned
    » ax » => » whois.ax » , // Aland Islands
    » az » => » whois.ripe.net » , // Azerbaijan
    // ba — Bosnia And Herzegovina — no whois server assigned
    // bb — Barbados — no whois server assigned
    // bd — Bangladesh — no whois server assigned
    » be » => » whois.dns.be » , // Belgium
    » bg » => » whois.register.bg » , // Bulgaria
    » bi » => » whois.nic.bi » , // Burundi
    » biz » => » whois.biz » ,
    » bj » => » whois.nic.bj » , // Benin
    // bm — Bermuda — no whois server assigned
    » bn » => » whois.bn » , // Brunei Darussalam
    » bo » => » whois.nic.bo » , // Bolivia
    » br » => » whois.registro.br » , // Brazil
    » bt » => » whois.netnames.net » , // Bhutan
    // bv — Bouvet Island (Norway) — no whois server assigned
    // bw — Botswana — no whois server assigned
    » by » => » whois.cctld.by » , // Belarus
    » bz » => » whois.belizenic.bz » , // Belize
    » ca » => » whois.cira.ca » , // Canada
    » cat » => » whois.cat » , // Spain
    » cc » => » whois.nic.cc » , // Cocos (Keeling) Islands
    » cd » => » whois.nic.cd » , // Congo, The Democratic Republic Of The
    // cf — Central African Republic — no whois server assigned
    » ch » => » whois.nic.ch » , // Switzerland
    » ci » => » whois.nic.ci » , // Cote d’Ivoire
    » ck » => » whois.nic.ck » , // Cook Islands
    » cl » => » whois.nic.cl » , // Chile
    // cm — Cameroon — no whois server assigned
    » cn » => » whois.cnnic.net.cn » , // China
    » co » => » whois.nic.co » , // Colombia
    » com » => » whois.verisign-grs.com » ,
    » coop » => » whois.nic.coop » ,
    // cr — Costa Rica — no whois server assigned
    // cu — Cuba — no whois server assigned
    // cv — Cape Verde — no whois server assigned
    // cw — Curacao — no whois server assigned
    » cx » => » whois.nic.cx » , // Christmas Island
    // cy — Cyprus — no whois server assigned
    » cz » => » whois.nic.cz » , // Czech Republic
    » de » => » whois.denic.de » , // Germany
    // dj — Djibouti — no whois server assigned
    » dk » => » whois.dk-hostmaster.dk » , // Denmark
    » dm » => » whois.nic.dm » , // Dominica
    // do — Dominican Republic — no whois server assigned
    » dz » => » whois.nic.dz » , // Algeria
    » ec » => » whois.nic.ec » , // Ecuador
    » edu » => » whois.educause.edu » ,
    » ee » => » whois.eenet.ee » , // Estonia
    » eg » => » whois.ripe.net » , // Egypt
    // er — Eritrea — no whois server assigned
    » es » => » whois.nic.es » , // Spain
    // et — Ethiopia — no whois server assigned
    » eu » => » whois.eu » ,
    » fi » => » whois.ficora.fi » , // Finland
    // fj — Fiji — no whois server assigned
    // fk — Falkland Islands — no whois server assigned
    // fm — Micronesia, Federated States Of — no whois server assigned
    » fo » => » whois.nic.fo » , // Faroe Islands
    » fr » => » whois.nic.fr » , // France
    // ga — Gabon — no whois server assigned
    » gd » => » whois.nic.gd » , // Grenada
    // ge — Georgia — no whois server assigned
    // gf — French Guiana — no whois server assigned
    » gg » => » whois.gg » , // Guernsey
    // gh — Ghana — no whois server assigned
    » gi » => » whois2.afilias-grs.net » , // Gibraltar
    » gl » => » whois.nic.gl » , // Greenland (Denmark)
    // gm — Gambia — no whois server assigned
    // gn — Guinea — no whois server assigned
    » gov » => » whois.nic.gov » ,
    // gr — Greece — no whois server assigned
    // gt — Guatemala — no whois server assigned
    » gs » => » whois.nic.gs » , // South Georgia And The South Sandwich Islands
    // gu — Guam — no whois server assigned
    // gw — Guinea-bissau — no whois server assigned
    » gy » => » whois.registry.gy » , // Guyana
    » hk » => » whois.hkirc.hk » , // Hong Kong
    // hm — Heard and McDonald Islands (Australia) — no whois server assigned
    » hn » => » whois.nic.hn » , // Honduras
    » hr » => » whois.dns.hr » , // Croatia
    » ht » => » whois.nic.ht » , // Haiti
    » hu » => » whois.nic.hu » , // Hungary
    // id — Indonesia — no whois server assigned
    » ie » => » whois.domainregistry.ie » , // Ireland
    » il » => » whois.isoc.org.il » , // Israel
    » im » => » whois.nic.im » , // Isle of Man
    » in » => » whois.inregistry.net » , // India
    » info » => » whois.afilias.net » ,
    » int » => » whois.iana.org » ,
    » io » => » whois.nic.io » , // British Indian Ocean Territory
    » iq » => » whois.cmc.iq » , // Iraq
    » ir » => » whois.nic.ir » , // Iran, Islamic Republic Of
    » is » => » whois.isnic.is » , // Iceland
    » it » => » whois.nic.it » , // Italy
    » je » => » whois.je » , // Jersey
    // jm — Jamaica — no whois server assigned
    // jo — Jordan — no whois server assigned
    » jobs » => » jobswhois.verisign-grs.com » ,
    » jp » => » whois.jprs.jp » , // Japan
    » ke » => » whois.kenic.or.ke » , // Kenya
    » kg » => » www.domain.kg » , // Kyrgyzstan
    // kh — Cambodia — no whois server assigned
    » ki » => » whois.nic.ki » , // Kiribati
    // km — Comoros — no whois server assigned
    // kn — Saint Kitts And Nevis — no whois server assigned
    // kp — Korea, Democratic People’s Republic Of — no whois server assigned
    » kr » => » whois.kr » , // Korea, Republic Of
    // kw — Kuwait — no whois server assigned
    // ky — Cayman Islands — no whois server assigned
    » kz » => » whois.nic.kz » , // Kazakhstan
    » la » => » whois.nic.la » , // Lao People’s Democratic Republic
    // lb — Lebanon — no whois server assigned
    // lc — Saint Lucia — no whois server assigned
    » li » => » whois.nic.li » , // Liechtenstein
    // lk — Sri Lanka — no whois server assigned
    » lt » => » whois.domreg.lt » , // Lithuania
    » lu » => » whois.dns.lu » , // Luxembourg
    » lv » => » whois.nic.lv » , // Latvia
    » ly » => » whois.nic.ly » , // Libya
    » ma » => » whois.iam.net.ma » , // Morocco
    // mc — Monaco — no whois server assigned
    » md » => » whois.nic.md » , // Moldova
    » me » => » whois.nic.me » , // Montenegro
    » mg » => » whois.nic.mg » , // Madagascar
    // mh — Marshall Islands — no whois server assigned
    » mil » => » whois.nic.mil » ,
    // mk — Macedonia, The Former Yugoslav Republic Of — no whois server assigned
    » ml » => » whois.dot.ml » , // Mali
    // mm — Myanmar — no whois server assigned
    » mn » => » whois.nic.mn » , // Mongolia
    » mo » => » whois.monic.mo » , // Macao
    » mobi » => » whois.dotmobiregistry.net » ,
    » mp » => » whois.nic.mp » , // Northern Mariana Islands
    // mq — Martinique (France) — no whois server assigned
    // mr — Mauritania — no whois server assigned
    » ms » => » whois.nic.ms » , // Montserrat
    // mt — Malta — no whois server assigned
    » mu » => » whois.nic.mu » , // Mauritius
    » museum » => » whois.museum » ,
    // mv — Maldives — no whois server assigned
    // mw — Malawi — no whois server assigned
    » mx » => » whois.mx » , // Mexico
    » my » => » whois.domainregistry.my » , // Malaysia
    // mz — Mozambique — no whois server assigned
    » na » => » whois.na-nic.com.na » , // Namibia
    » name » => » whois.nic.name » ,
    » nc » => » whois.nc » , // New Caledonia
    // ne — Niger — no whois server assigned
    » net » => » whois.verisign-grs.net » ,
    » nf » => » whois.nic.nf » , // Norfolk Island
    » ng » => » whois.nic.net.ng » , // Nigeria
    // ni — Nicaragua — no whois server assigned
    » nl » => » whois.domain-registry.nl » , // Netherlands
    » no » => » whois.nor >» , // Norway
    // np — Nepal — no whois server assigned
    // nr — Nauru — no whois server assigned
    » nu » => » whois.nic.nu » , // Niue
    » nz » => » whois.srs.net.nz » , // New Zealand
    » om » => » whois.registry.om » , // Oman
    » org » => » whois.pir.org » ,
    // pa — Panama — no whois server assigned
    » pe » => » kero.yachay.pe » , // Peru
    » pf » => » whois.registry.pf » , // French Polynesia
    // pg — Papua New Guinea — no whois server assigned
    // ph — Philippines — no whois server assigned
    // pk — Pakistan — no whois server assigned
    » pl » => » whois.dns.pl » , // Poland
    » pm » => » whois.nic.pm » , // Saint Pierre and Miquelon (France)
    // pn — Pitcairn (New Zealand) — no whois server assigned
    » post » => » whois.dotpostregistry.net » ,
    » pr » => » whois.nic.pr » , // Puerto Rico
    » pro » => » whois.dotproregistry.net » ,
    // ps — Palestine, State of — no whois server assigned
    » pt » => » whois.dns.pt » , // Portugal
    » pw » => » whois.nic.pw » , // Palau
    // py — Paraguay — no whois server assigned
    » qa » => » whois.registry.qa » , // Qatar
    » re » => » whois.nic.re » , // Reunion (France)
    » ro » => » whois.rotld.ro » , // Romania
    » rs » => » whois.rn >» , // Serbia
    » ru » => » whois.tcinet.ru » , // Russian Federation
    // rw — Rwanda — no whois server assigned
    » sa » => » whois.nic.net.sa » , // Saudi Arabia
    » sb » => » whois.nic.net.sb » , // Solomon Islands
    » sc » => » whois2.afilias-grs.net » , // Seychelles
    // sd — Sudan — no whois server assigned
    » se » => » whois.iis.se » , // Sweden
    » sg » => » whois.sgnic.sg » , // Singapore
    » sh » => » whois.nic.sh » , // Saint Helena
    » si » => » whois.arnes.si » , // Slovenia
    » sk » => » whois.sk-nic.sk » , // Slovakia
    // sl — Sierra Leone — no whois server assigned
    » sm » => » whois.nic.sm » , // San Marino
    » sn » => » whois.nic.sn » , // Senegal
    » so » => » whois.nic.so » , // Somalia
    // sr — Suriname — no whois server assigned
    » st » => » whois.nic.st » , // Sao Tome And Principe
    » su » => » whois.tcinet.ru » , // Russian Federation
    // sv — El Salvador — no whois server assigned
    » sx » => » whois.sx » , // Sint Maarten (dutch Part)
    » sy » => » whois.tld.sy » , // Syrian Arab Republic
    // sz — Swaziland — no whois server assigned
    » tc » => » whois.mer >» , // Turks And Caicos Islands
    // td — Chad — no whois server assigned
    » tel » => » whois.nic.tel » ,
    » tf » => » whois.nic.tf » , // French Southern Territories
    // tg — Togo — no whois server assigned
    » th » => » whois.thnic.co.th » , // Thailand
    » tj » => » whois.nic.tj » , // Tajikistan
    » tk » => » whois.dot.tk » , // Tokelau
    » tl » => » whois.nic.tl » , // Timor-leste
    » tm » => » whois.nic.tm » , // Turkmenistan
    » tn » => » whois.ati.tn » , // Tunisia
    » to » => » whois.tonic.to » , // Tonga
    » tp » => » whois.nic.tl » , // Timor-leste
    » tr » => » whois.nic.tr » , // Turkey
    » travel » => » whois.nic.travel » ,
    // tt — Trinidad And Tobago — no whois server assigned
    » tv » => » tvwhois.verisign-grs.com » , // Tuvalu
    » tw » => » whois.twnic.net.tw » , // Taiwan
    » tz » => » whois.tznic.or.tz » , // Tanzania, United Republic Of
    » ua » => » whois.ua » , // Ukraine
    » ug » => » whois.co.ug » , // Uganda
    » uk » => » whois.nic.uk » , // United Kingdom
    » us » => » whois.nic.us » , // United States
    » uy » => » whois.nic.org.uy » , // Uruguay
    » uz » => » whois.cctld.uz » , // Uzbekistan
    // va — Holy See (vatican City State) — no whois server assigned
    » vc » => » whois2.afilias-grs.net » , // Saint Vincent And The Grenadines
    » ve » => » whois.nic.ve » , // Venezuela
    » vg » => » whois.adamsnames.tc » , // Virgin Islands, British
    // vi — Virgin Islands, US — no whois server assigned
    // vn — Viet Nam — no whois server assigned
    // vu — Vanuatu — no whois server assigned
    » wf » => » whois.nic.wf » , // Wallis and Futuna
    » ws » => » whois.website.ws » , // Samoa
    » xxx » => » whois.nic.xxx » ,
    // ye — Yemen — no whois server assigned
    » yt » => » whois.nic.yt » , // Mayotte
    » yu » => » whois.ripe.net » );
    function LookupDomain ( $domain ) <
    global $whoisservers ;
    $domain_parts = explode ( » . » , $domain );
    $tld = strtolower ( array_pop ( $domain_parts ));
    $whoisserver = $whoisservers [ $tld ];
    if ( ! $whoisserver ) <
    return » Error: No appropriate Whois server found for $domain domain! » ;
    >
    $result = QueryWhoisServer( $whoisserver , $domain );
    if ( ! $result ) <
    return » Error: No results retrieved from $whoisserver server for $domain domain! » ;
    >
    else <
    while ( strpos ( $result , » Whois Server: » ) ! == FALSE ) <
    preg_match ( «/ Whois Server: (. * ) /» , $result , $matches );
    $secondary = $matches [ 1 ];
    if ( $secondary ) <
    $result = QueryWhoisServer( $secondary , $domain );
    $whoisserver = $secondary ;
    >
    >
    >
    return » $domain domain lookup results from $whoisserver server: \n\n » . $result ;
    >
    function LookupIP ( $ip ) <
    $whoisservers = array (
    // «whois.afrinic.net», // Africa — returns timeout error :-(
    » whois.lacnic.net » , // Latin America and Caribbean — returns data for ALL locations worldwide :-)
    » whois.apnic.net » , // Asia/Pacific only
    » whois.arin.net » , // North America only
    » whois.ripe.net » // Europe, Middle East and Central Asia only
    );
    $results = array ();
    foreach ( $whoisservers as $whoisserver ) <
    $result = QueryWhoisServer( $whoisserver , $ip );
    if ( $result && ! in_array ( $result , $results )) <
    $results [ $whoisserver ] = $result ;
    >
    >
    $res = » RESULTS FOUND: » . count ( $results );
    foreach ( $results as $whoisserver => $result ) <
    $res .= » \n\n ————- \n Lookup results for » . $ip . » from » . $whoisserver . » server: \n\n » . $result ;
    >
    return $res ;
    >
    function ValidateIP ( $ip ) <
    $ipnums = explode ( » . » , $ip );
    if ( count ( $ipnums ) ! = 4 ) <
    return false ;
    >
    foreach ( $ipnums as $ipnum ) <
    if ( ! is_numeric ( $ipnum ) || ( $ipnum > 255 )) <
    return false ;
    >
    >
    return $ip ;
    >
    function ValidateDomain ( $domain ) <
    if ( ! preg_match ( «/ ^ ( [-a-z0-9] <2,100>) \. ( [a-z\.] <2,8>) $ /i» , $domain )) <
    return false ;
    >
    return $domain ;
    >
    function QueryWhoisServer ( $whoisserver , $domain ) <
    $port = 43 ;
    $timeout = 10 ;
    $fp = @ fsockopen ( $whoisserver , $port , $errno , $errstr , $timeout ) or die ( » Socket Error » . $errno . » — » . $errstr );
    // if($whoisserver == «whois.verisign-grs.com») $domain = «=».$domain; // whois.verisign-grs.com requires the equals sign («=») or it returns any result containing the searched string.
    fputs ( $fp , $domain . » \r\n » );
    $out = » » ;
    while ( ! feof ( $fp )) <
    $out .= fgets ( $fp );
    >
    fclose ( $fp );
    $res = » » ;
    if (( strpos ( strtolower ( $out ), » error » ) === FALSE ) && ( strpos ( strtolower ( $out ), » not allocated » ) === FALSE )) <
    $rows = explode ( » \n » , $out );
    foreach ( $rows as $row ) <
    $row = trim ( $row );
    if (( $row ! = ‘ ‘ ) && ( $row < 0 >! = ‘ # ‘ ) && ( $row < 0 >! = ‘ % ‘ )) <
    $res .= $row . » \n » ;
    >
    >
    >
    return $res ;
    >
    ? >
    html >
    head >
    title >Whois Lookup Script title >
    meta http-equiv = » Content-Type » content = » text/html; charset=iso-8859-1 » >
    head >
    body >
    form action = » $_SERVER [ ‘ PHP_SELF ‘ ]; ? > » >
    p > b > label for = » domain » >Domain/IP Address: label > b > input type = » text » name = » domain » id = » domain » value = » $domain ; ? > » > input type = » submit » value = » Lookup » > p >
    form >
    if ( $domain ) <
    $domain = trim ( $domain );
    if ( substr ( strtolower ( $domain ), 0 , 7 ) == » http:// » ) $domain = substr ( $domain , 7 );
    if ( substr ( strtolower ( $domain ), 0 , 4 ) == » www. » ) $domain = substr ( $domain , 4 );
    if (Val >$domain )) <
    echo » hello before check » ;
    $result = LookupIP( $domain );
    >
    elseif (Val >$domain )) <
    $result = LookupDomain( $domain );
    >
    else die ( » Inval >» );
    echo » \n » ;
    >
    ? >
    body >
    html >

    This comment has been minimized.

    Copy link Quote reply

    winelist commented Feb 22, 2020

    A couple of items, to make script a bit more complete
    A: The NEW gTLD’s are upto 24 characters in length, regex is limited to 8 chars
    B: z.com errors out since the regex script requires at 2 chars
    C: Max length of a domain is 63 chars and the regex has a max length of 100.
    ANSWER: «/^([-a-z0-9]<2,100>).([a-z.]<2,8>)$/i» replace the <> with the following <1,63>and

    Error first time loading the script, I found isset a good answer, other way’s probably work too.
    $domain = $_GET[‘domain’];
    ANSWER: $domain = isset($_GET[‘domain’]) ? $_GET[‘domain’] : »;

    Add a few new gTLD’s: (it is easy, to test longer TLD’s)
    «domains» => «whois.donuts.co», // donuts registry
    «tips» => «whois.donuts.co», // donuts registry
    «blog» => «whois.nic.blog», // wordpress registry
    «accountants» => «whois.donuts.co», // donuts registry

    This comment has been minimized.

    Copy link Quote reply

    calabresem commented Jun 29, 2020 •

    Thanks for the code!

    Let me add a couple of corrections I had to make:

    And the new whois server for Argentina:

    • «ar» => «whois.nic.ar»,

    This comment has been minimized.

    Copy link Quote reply

    moneycodedotng commented Oct 13, 2020

    Thanks for this code.
    2 questions.

    How does one integrate this into a WordPress page?

    How do you change the «object not found» text on some servers to «domain not yet registered» and add a link for registration of that domain name to the output?

    Как получить домен истекает с использованием данных ответа whois на php?

    Как получить домен истекает с использованием данных ответа whois на php?

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

    например: проверьте DRGDRGDRGRGDRG.COM если данные ответа whois имеют слово No match for этого означает, что этот домен доступен.

    Но теперь я хочу проверить дату истечения срока действия домена, используя данные ответа whois, подобные этому

    Как я могу это сделать? Спасибо

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


    Думаю, у нас есть два варианта:

    1. Используйте некоторую библиотеку, и когда она терпит неудачу, проанализируйте строку
    2. Делайте все сами, не используйте библиотеку и не разбирайте результат.

    Я предлагаю начать с некоторой библиотеки, но я действительно не знаю «идеального». Я собираюсь попробовать phpWhois. Если он терпит неудачу, он дает исходные данные, чтобы попытаться разобрать их самостоятельно.

    Сначала вам нужно установить библиотеку. Я делаю это с помощью Composer. Ниже представлен мой файл composer.json

    Обратите внимание, что последняя версия phpWhois не работает с последней idna-convert , поэтому я должен указать ее в моих требованиях.

    Выполнить composer install для загрузки библиотек.

    И, наконец, PHP-скрипт для запроса домена:

    Он принимает имя домена как первый аргумент скрипта $argv[1] .

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

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

    Скрипт для проверки занятости домена whois

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

    Содержание 1го файла index.php:

    скрипт проверки занятости домена — пример использования

    Информация о доменах — Whois-сервис / IP

    Сервис Whois — это автоматизированная система, предоставляющая публичный
    доступ к информации о доменном имени и его Администраторе. Она позволяет узнать:
    — когда был зарегистрирован домен;
    — когда заканчивается регистрация домена;
    — на обслуживании у какого регистратора находится веб-адрес;
    — некоторые данные об Администраторе домена, если он не воспользовался сервисом скрытия персональных данных.
    Последний пункт применим только для владельцев международных доменов. Данные Администраторов адресов в зонах .RU и .РФ скрыты по умолчанию.

    Кроме того, Whois-service предоставляет возможность проверить работоспособность сайта, получить полную информацию о его доступности. Информация о доменах в
    зонах .RU, .SU и .РФ (статус, возраст домена и дата регистрации, окончание регистрации доменного имени) теперь отображается на русском языке.

    Введите домен, IP-адрес или название регистратора в соответствующее поле запроса и получите полную информацию!

    История Whois домена

    Узнайте все изменения за всё время существования домена

    Система отслеживания изменения статусов доменов

    Whois Domain Bot для Telegram

    Теперь сервис Whois всегда под рукой в вашем телефоне!

    Whois сервис

    Сервис Whois позволяет быстро получить всю информацию о регистрации домена, например, дату регистрации и возраст домена, или узнать контакты, по которым можно связаться с организацией или человеком, чей домен вас заинтересовал.

    Для чего нужен Whois сервис

    Прежде всего, Whois позволяет бесплатно и быстро выяснить, свободен ли домен. Если информация по доменному имени не внесена в whois и не выдается в результатах проверки домена, значит, доменное имя свободно и с большой долей вероятности может быть зарегистрировано .

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

    В Whois легко проверить, когда был зарегистрирован домен — узнать дату регистрации домена можно в поле «created». Проверять возраст домена важно не только при покупке доменного имени, информация о сроках регистрации домена полезна при совершении сделок, выборе партнеров и просто анализе информации, размещенной в интернете. Мошенники часто создают сайты-однодневки с выгодными предложениями, и недавно зарегистрированный домен — веский повод усомниться в чистоте намерений авторов сообщения.

    Узнать, кому принадлежит домен, через Whois сложнее. Часто персональные данные защищаются на уровне регистраторов или скрываются по правилам реестров. Доверять открытым данным тоже непросто, поскольку администраторы доменов могут указывать ложные сведения при регистрации имени. Но даже если вы не знаете, на чье имя зарегистрирован домен, сервис дает возможность связаться с владельцем доменного имени через форму обратной связи.

    Илон Маск рекомендует:  Что такое код imap_getmailboxes
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL