Простой скрипт поиска api Whois в PHP

На этом уроке я объясню, очень полезный скрипт, чтобы получить данные WHOIS домена. Вот отличный и простой скрипт поиска Whois api yна PHP, можно его использовать в своих нуждах.

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

Файл класса Whois

Создать файл whois.php и скопировать фрагмент кода на PHP, чтобы получить данные WHOIS для любого домена. Этот скрипт поддерживает множество TLD (домена верхнего уровня), как .ru, .com, .net, .в, .org, .info и многие другие.

<?php

$domain = $_GET['domain'];

$whoisservers = array(

    "ac" => "whois.nic.ac", // Ascension Island

    // ad - Andorra - нет назначенного whois сервера

    "ae" => "whois.nic.ae", // Арабские эмираты

    "aero"=>"whois.aero",

    "af" => "whois.nic.af", // Афганистан

    "ag" => "whois.nic.ag", // Antigua And Barbuda

    "ai" => "whois.ai", // Ангола

    "al" => "whois.ripe.net", // Албания

    "am" => "whois.amnic.net",  // Армения

    // an - Netherlands Antilles - нет назначенного whois сервера

    // ao - Angola - нет назначенного whois сервера

    // aq - Antarctica (New Zealand) - нет назначенного whois сервера

    // ar - Argentina - нет назначенного whois сервера

    "arpa" => "whois.iana.org",

    "as" => "whois.nic.as", // American Samoa

    "asia" => "whois.nic.asia",

    "at" => "whois.nic.at", // Австрия

    "au" => "whois.aunic.net", // Австралия

    // aw - Aruba - нет назначенного whois сервера

    "ax" => "whois.ax", // Aland Islands

    "az" => "whois.ripe.net", // Азербайджан

    // ba - Bosnia And Herzegovina - нет назначенного whois сервера

    // bb - Barbados - нет назначенного whois сервера

    // bd - Bangladesh - нет назначенного whois сервера

    "be" => "whois.dns.be", // Бельгия

    "bg" => "whois.register.bg", // Болгария

    "bi" => "whois.nic.bi", // Burundi

    "biz" => "whois.biz",

    "bj" => "whois.nic.bj", // Benin

    // bm - Bermuda - нет назначенного whois сервера

    "bn" => "whois.bn", // Brunei Darussalam

    "bo" => "whois.nic.bo", // Боливия

    "br" => "whois.registro.br", // Бразилия

    "bt" => "whois.netnames.net", // Bhutan

    // bv - Bouvet Island (Norway) - нет назначенного whois сервера

    // bw - Botswana - нет назначенного whois сервера

    "by" => "whois.cctld.by", // Беларусия

    "bz" => "whois.belizenic.bz", // Belize

    "ca" => "whois.cira.ca", // Канада

    "cat" => "whois.cat", // Испания

    "cc" => "whois.nic.cc", // Cocos (Keeling) Islands

    "cd" => "whois.nic.cd", // Congo, The Democratic Republic Of The

    // cf - Central African Republic - нет назначенного whois сервера

    "ch" => "whois.nic.ch", // Швейцария

    "ci" => "whois.nic.ci", // Cote d'Ivoire

    "ck" => "whois.nic.ck", // Острова Кука

    "cl" => "whois.nic.cl", // Чили

    // cm - Cameroon - нет назначенного whois сервера

    "cn" => "whois.cnnic.net.cn", // Китай

    "co" => "whois.nic.co", // Колумбия

    "com" => "whois.verisign-grs.com",

    "coop" => "whois.nic.coop",

    // cr - Costa Rica - нет назначенного whois сервера

    // cu - Cuba - нет назначенного whois сервера

    // cv - Cape Verde - нет назначенного whois сервера

    // cw - Curacao - нет назначенного whois сервера

    "cx" => "whois.nic.cx", // Christmas Island

    // cy - Cyprus - нет назначенного whois сервера

    "cz" => "whois.nic.cz", // Czech Republic

    "de" => "whois.denic.de", // Германия

    // dj - Djibouti - нет назначенного whois сервера

    "dk" => "whois.dk-hostmaster.dk", // Дания

    "dm" => "whois.nic.dm", // Доминиканская республика

    // do - Dominican Republic - нет назначенного whois сервера

    "dz" => "whois.nic.dz", // Algeria

    "ec" => "whois.nic.ec", // Эквадор

    "edu" => "whois.educause.edu",

    "ee" => "whois.eenet.ee", // Эстония

    "eg" => "whois.ripe.net", // Египет

    // er - Eritrea - нет назначенного whois сервера

    "es" => "whois.nic.es", // Испания

    // et - Ethiopia - нет назначенного whois сервера

    "eu" => "whois.eu",

    "fi" => "whois.ficora.fi", // Финляндия

    // fj - Fiji - нет назначенного whois сервера

    // fk - Falkland Islands - нет назначенного whois сервера

    // fm - Micronesia, Federated States Of - нет назначенного whois сервера

    "fo" => "whois.nic.fo", // Фарерские острова

    "fr" => "whois.nic.fr", // Франция

    // ga - Gabon - нет назначенного whois сервера

    "gd" => "whois.nic.gd", // Гренада

    // ge - Georgia - нет назначенного whois сервера

    // gf - French Guiana - нет назначенного whois сервера

    "gg" => "whois.gg", // Guernsey

    // gh - Ghana - нет назначенного whois сервера

    "gi" => "whois2.afilias-grs.net", // Гибралтар

    "gl" => "whois.nic.gl", // Гренландия (Denmark)

    // gm - Gambia - нет назначенного whois сервера

    // gn - Guinea - нет назначенного whois сервера

    "gov" => "whois.nic.gov",

    // gr - Greece - нет назначенного whois сервера

    // gt - Guatemala - нет назначенного whois сервера

    "gs" => "whois.nic.gs", // South Georgia And The South Sandwich Islands

    // gu - Guam - нет назначенного whois сервера

    // gw - Guinea-bissau - нет назначенного whois сервера

    "gy" => "whois.registry.gy", // Guyana

    "hk" => "whois.hkirc.hk", // Hong Kong

    // hm - Heard and McDonald Islands (Australia) - нет назначенного whois сервера

    "hn" => "whois.nic.hn", // Honduras

    "hr" => "whois.dns.hr", // Хорватия

    "ht" => "whois.nic.ht", // Гаити

    "hu" => "whois.nic.hu", // Венгрия

    // id - Indonesia - нет назначенного whois сервера

    "ie" => "whois.domainregistry.ie", // Ирландия

    "il" => "whois.isoc.org.il", // Израиль

    "im" => "whois.nic.im", // Isle of Man

    "in" => "whois.inregistry.net", // Индия

    "info" => "whois.afilias.net",

    "int" => "whois.iana.org",

    "io" => "whois.nic.io", // British Indian Ocean Territory

    "iq" => "whois.cmc.iq", // Ирак

    "ir" => "whois.nic.ir", // Иран

    "is" => "whois.isnic.is", // Исландия

    "it" => "whois.nic.it", // Италия

    "je" => "whois.je", // Jersey

    // jm - Jamaica - нет назначенного whois сервера

    // jo - Jordan - нет назначенного whois сервера

    "jobs" => "jobswhois.verisign-grs.com",

    "jp" => "whois.jprs.jp", // Япония

    "ke" => "whois.kenic.or.ke", // Кения

    "kg" => "www.domain.kg", // Киргизстан

    // kh - Cambodia - нет назначенного whois сервера

    "ki" => "whois.nic.ki", // Kiribati

    // km - Comoros - нет назначенного whois сервера

    // kn - Saint Kitts And Nevis - нет назначенного whois сервера

    // kp - Korea, Democratic People's Republic Of - нет назначенного whois сервера

    "kr" => "whois.kr", // Korea, Republic Of

    // kw - Kuwait - нет назначенного whois сервера

    // ky - Cayman Islands - нет назначенного whois сервера

    "kz" => "whois.nic.kz", // Казахстан

    "la" => "whois.nic.la", // Lao People's Democratic Republic

    // lb - Lebanon - нет назначенного whois сервера

    // lc - Saint Lucia - нет назначенного whois сервера

    "li" => "whois.nic.li", // Лихтенштейн

    // lk - Sri Lanka - нет назначенного whois сервера

    "lt" => "whois.domreg.lt", // Lithuania

    "lu" => "whois.dns.lu", // Luxembourg

    "lv" => "whois.nic.lv", // Латвия

    "ly" => "whois.nic.ly", // Libya

    "ma" => "whois.iam.net.ma", // Морокко

    // mc - Monaco - нет назначенного whois сервера

    "md" => "whois.nic.md", // Молдова

    "me" => "whois.nic.me", // Montenegro

    "mg" => "whois.nic.mg", // Мадагаскар

    // mh - Marshall Islands - нет назначенного whois сервера

    "mil" => "whois.nic.mil",

    // mk - Macedonia, The Former Yugoslav Republic Of - нет назначенного whois сервера

    "ml" => "whois.dot.ml", // Мали

    // mm - Myanmar - нет назначенного whois сервера

    "mn" => "whois.nic.mn", // Монгола

    "mo" => "whois.monic.mo", // Macao

    "mobi" => "whois.dotmobiregistry.net",

    "mp" => "whois.nic.mp", // Northern Mariana Islands

    // mq - Martinique (France) - нет назначенного whois сервера

    // mr - Mauritania - нет назначенного whois сервера

    "ms" => "whois.nic.ms", // Montserrat

    // mt - Malta - нет назначенного whois сервера

    "mu" => "whois.nic.mu", // Mauritius

    "museum" => "whois.museum",

    // mv - Maldives - нет назначенного whois сервера

    // mw - Malawi - нет назначенного whois сервера

    "mx" => "whois.mx", // Мексика

    "my" => "whois.domainregistry.my", // Малазия

    // mz - Mozambique - нет назначенного whois сервера

    "na" => "whois.na-nic.com.na", // Намибия

    "name" => "whois.nic.name",

    "nc" => "whois.nc", // New Caledonia

    // ne - Niger - нет назначенного whois сервера

    "net" => "whois.verisign-grs.net",

    "nf" => "whois.nic.nf", // Norfolk Island

    "ng" => "whois.nic.net.ng", // Нигерия

    // ni - Nicaragua - нет назначенного whois сервера

    "nl" => "whois.domain-registry.nl", // Голандия

    "no" => "whois.norid.no", // Норвегия

    // np - Nepal - нет назначенного whois сервера

    // nr - Nauru - нет назначенного whois сервера

    "nu" => "whois.nic.nu", // Niue

    "nz" => "whois.srs.net.nz", // Новая Зеландия

    "om" => "whois.registry.om", // Оман

    "org" => "whois.pir.org",

    // pa - Panama - нет назначенного whois сервера

    "pe" => "kero.yachay.pe", // Перу

    "pf" => "whois.registry.pf", // Французкая Полинезия

    // pg - Papua New Guinea - нет назначенного whois сервера

    // ph - Philippines - нет назначенного whois сервера

    // pk - Pakistan - нет назначенного whois сервера

    "pl" => "whois.dns.pl", // Польша

    "pm" => "whois.nic.pm", // Saint Pierre and Miquelon (France)

    // pn - Pitcairn (New Zealand) - нет назначенного whois сервера

    "post" => "whois.dotpostregistry.net",

    "pr" => "whois.nic.pr", // Пуэрто Рико

    "pro" => "whois.dotproregistry.net",

    // ps - Palestine, State of - нет назначенного whois сервера

    "pt" => "whois.dns.pt", // Португалия

    "pw" => "whois.nic.pw", // Palau

    // py - Paraguay - нет назначенного whois сервера

    "qa" => "whois.registry.qa", // Катар

    "re" => "whois.nic.re", // Reunion (France)

    "ro" => "whois.rotld.ro", // Румыния

    "rs" => "whois.rnids.rs", // Сербия

    "ru" => "whois.tcinet.ru", // Россия

    // rw - Rwanda - нет назначенного whois сервера

    "sa" => "whois.nic.net.sa", // Саудовская аравия

    "sb" => "whois.nic.net.sb", // Соломоновы острова

    "sc" => "whois2.afilias-grs.net", // Seychelles

    // sd - Sudan - нет назначенного whois сервера

    "se" => "whois.iis.se", // Швеция

    "sg" => "whois.sgnic.sg", // Сингапур

    "sh" => "whois.nic.sh", // Saint Helena

    "si" => "whois.arnes.si", // Словения

    "sk" => "whois.sk-nic.sk", // Словакия

    // sl - Sierra Leone - нет назначенного whois сервера

    "sm" => "whois.nic.sm", // Сан Морино

    "sn" => "whois.nic.sn", // Сенегал

    "so" => "whois.nic.so", // Сомали

    // sr - Suriname - нет назначенного whois сервера

    "st" => "whois.nic.st", // Sao Tome And Principe

    "su" => "whois.tcinet.ru", // Российская федерация

    // sv - El Salvador - нет назначенного whois сервера

    "sx" => "whois.sx", // Sint Maarten (dutch Part)

    "sy" => "whois.tld.sy", // Сирия

    // sz - Swaziland - нет назначенного whois сервера

    "tc" => "whois.meridiantld.net", // Turks And Caicos Islands

    // td - Chad - нет назначенного whois сервера

    "tel" => "whois.nic.tel",

    "tf" => "whois.nic.tf", // French Southern Territories

    // tg - Togo - нет назначенного whois сервера

    "th" => "whois.thnic.co.th", // Тайланд

    "tj" => "whois.nic.tj", // Таджикистан

    "tk" => "whois.dot.tk", // Tokelau

    "tl" => "whois.nic.tl", // Timor-leste

    "tm" => "whois.nic.tm", // Туркменистан

    "tn" => "whois.ati.tn", // Тунис

    "to" => "whois.tonic.to", // Tonga

    "tp" => "whois.nic.tl", // Timor-leste

    "tr" => "whois.nic.tr", // Турция

    "travel" => "whois.nic.travel",

    // tt - Trinidad And Tobago - нет назначенного whois сервера

    "tv" => "tvwhois.verisign-grs.com", // Tuvalu

    "tw" => "whois.twnic.net.tw", // Тйвань

    "tz" => "whois.tznic.or.tz", // Танзания

    "ua" => "whois.ua", // Украина

    "ug" => "whois.co.ug", // Уганда

    "uk" => "whois.nic.uk", // Англия

    "us" => "whois.nic.us", // США

    "uy" => "whois.nic.org.uy", // Уругвай

    "uz" => "whois.cctld.uz", // Узбекистан

    // va - Holy See (vatican City State) - нет назначенного сервера whois

    "vc" => "whois2.afilias-grs.net", // Saint Vincent And The Grenadines

    "ve" => "whois.nic.ve", // Венесуэла

    "vg" => "whois.adamsnames.tc", // Виргинскиие острова

    // vi - Virgin Islands, US - нет назначенного whois сервера

    // vn - Viet Nam - нет назначенного whois сервера

    // vu - Vanuatu - нет назначенного whois сервера

    "wf" => "whois.nic.wf", // Wallis and Futuna

    "ws" => "whois.website.ws", // Самоа

    "xxx" => "whois.nic.xxx",

    // ye - Yemen - нет назначенного whois сервера

    "yt" => "whois.nic.yt", // Майотта

    "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 "Ошибка: Не соответствующего whois-сервера для домена $domain!";

    }

    $result = QueryWhoisServer($whoisserver, $domain);

    if(!$result) {

        return "Ошибка: Нет результатов полученных от $whoisserver сервера для домена $domain!";

    }

    else {

        while(strpos($result, "Whois-сервер:") !== FALSE){

            preg_match("/Whois Server: (.*)/", $result, $matches);

            $secondary = $matches[1];

            if($secondary) {

                $result = QueryWhoisServer($secondary, $domain);

                $whoisserver = $secondary;

            }

        }

    }

    return "$domain результаты поиска для домена $whoisserver сервер:nn" . $result;

}

 

function LookupIP($ip) {

    $whoisservers = array(

        //"whois.afrinic.net", // Африка - возвращает время ожидания ошибка :-(

        "whois.lacnic.net", // Латинской Америки и Карибского бассейна - возвращает данные для всех мест по всему миру :-)

        "whois.apnic.net", // Для азиатско-тихоокеанского региона

        "whois.arin.net", // Для северной Америки

        "whois.ripe.net" // Только для Европы, Ближнего Востока и Центральной Азии

    );

    $results = array();

    foreach($whoisservers as $whoisserver) {

        $result = QueryWhoisServer($whoisserver, $ip);

        if($result && !in_array($result, $results)) {

            $results[$whoisserver]= $result;

        }

    }

    $res = "НАЙДЕНО: " . count($results);

    foreach($results as $whoisserver=>$result) {

        $res .= "nn-------------nРезультаты поиска " . $ip . " from " . $whoisserver . " сервер:nn" . $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 требует знака равенства ("=") или он возвращает какой-либо результат с искомой строкой.

    fputs($fp, $domain . "rn");

    $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;

}

?>

 

Страница Index.php

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

<div class="well">

 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>">

<input type="text" name="domain" placeholder="www.domainname.ru" value="<?=$domain;?>" required="required"

style="width:250px; height:37px;">

<input type="submit" class="pretty medium primary btn" value="Whois Lookup" name="Submit"

style="color:#fff;">

</form>

 

</div>

<?php

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(ValidateIP($domain)) {

        $result = LookupIP($domain);

    }

    elseif(ValidateDomain($domain)) {

        $result = LookupDomain($domain);

    }

    else die("Invalid Input!");

    echo "<pre>n" . $result . "n</pre>n";

}

?>

</div>

Данные WHOIS



2017-02-03T12:11:14
Лучшие учебники по Wodpress