Advertisement
H4T3D

WHOIS

Oct 11th, 2015
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 16.89 KB | None | 0 0
  1. <?php
  2.  set_time_limit(0);
  3.  error_reporting(0);
  4. ?>
  5. <link href='https://fonts.googleapis.com/css?family=Orbitron' rel='stylesheet' type='text/css'>
  6. <style type="text/css">
  7.     body {
  8.         background-color: #f0f0f2;
  9.         margin: 0;
  10.         padding: 0;
  11.         font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  12.        
  13.     }
  14.         h1{    font-family: 'Orbitron', sans-serif; color: #fff;}
  15.     div {
  16.         width: 600px;
  17.         margin: 5em auto;
  18.         padding: 50px;
  19.         //background-color: #fff;
  20.         background-color: black;
  21.         border-radius: 1em;
  22.         word-wrap: break-word;
  23.     }
  24.     a:link, a:visited {
  25.         color: #38488f;
  26.         text-decoration: none;
  27.     }
  28.     @media (max-width: 700px) {
  29.         body {
  30.             background-color: #fff;
  31.         }
  32.         div {
  33.             width: auto;
  34.             margin: 0 auto;
  35.             border-radius: 0;
  36.             padding: 1em;
  37.         }
  38.     }
  39.     </style>
  40. <center>
  41. <div class="well">
  42.  <h1>WOHIS -H4T3D</h1>
  43. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
  44. <input type="text" name="domain" placeholder="www.domainname.com" required="required"
  45. style="width:250px; height:37px;">
  46. <input type="submit" class="pretty medium primary btn" value="Whois Lookup" name="Submit"
  47. style="color:#fff;width:250px; height:37px;">
  48. </form>
  49.  
  50. </div>
  51. </center>
  52. <body>
  53. <?php
  54. $domain = $_GET['domain'];
  55. $whoisservers = array(
  56.     "ac" => "whois.nic.ac", // Ascension Island
  57.     // ad - Andorra - no whois server assigned
  58.     "ae" => "whois.nic.ae", // United Arab Emirates
  59.     "aero"=>"whois.aero",
  60.     "af" => "whois.nic.af", // Afghanistan
  61.     "ag" => "whois.nic.ag", // Antigua And Barbuda
  62.     "ai" => "whois.ai", // Anguilla
  63.     "al" => "whois.ripe.net", // Albania
  64.     "am" => "whois.amnic.net",  // Armenia
  65.     // an - Netherlands Antilles - no whois server assigned
  66.     // ao - Angola - no whois server assigned
  67.     // aq - Antarctica (New Zealand) - no whois server assigned
  68.     // ar - Argentina - no whois server assigned
  69.     "arpa" => "whois.iana.org",
  70.     "as" => "whois.nic.as", // American Samoa
  71.     "asia" => "whois.nic.asia",
  72.     "at" => "whois.nic.at", // Austria
  73.     "au" => "whois.aunic.net", // Australia
  74.     // aw - Aruba - no whois server assigned
  75.     "ax" => "whois.ax", // Aland Islands
  76.     "az" => "whois.ripe.net", // Azerbaijan
  77.     // ba - Bosnia And Herzegovina - no whois server assigned
  78.     // bb - Barbados - no whois server assigned
  79.     // bd - Bangladesh - no whois server assigned
  80.     "be" => "whois.dns.be", // Belgium
  81.     "bg" => "whois.register.bg", // Bulgaria
  82.     "bi" => "whois.nic.bi", // Burundi
  83.     "biz" => "whois.biz",
  84.     "bj" => "whois.nic.bj", // Benin
  85.     // bm - Bermuda - no whois server assigned
  86.     "bn" => "whois.bn", // Brunei Darussalam
  87.     "bo" => "whois.nic.bo", // Bolivia
  88.     "br" => "whois.registro.br", // Brazil
  89.     "bt" => "whois.netnames.net", // Bhutan
  90.     // bv - Bouvet Island (Norway) - no whois server assigned
  91.     // bw - Botswana - no whois server assigned
  92.     "by" => "whois.cctld.by", // Belarus
  93.     "bz" => "whois.belizenic.bz", // Belize
  94.     "ca" => "whois.cira.ca", // Canada
  95.     "cat" => "whois.cat", // Spain
  96.     "cc" => "whois.nic.cc", // Cocos (Keeling) Islands
  97.     "cd" => "whois.nic.cd", // Congo, The Democratic Republic Of The
  98.     // cf - Central African Republic - no whois server assigned
  99.     "ch" => "whois.nic.ch", // Switzerland
  100.     "ci" => "whois.nic.ci", // Cote d'Ivoire
  101.     "ck" => "whois.nic.ck", // Cook Islands
  102.     "cl" => "whois.nic.cl", // Chile
  103.     // cm - Cameroon - no whois server assigned
  104.     "cn" => "whois.cnnic.net.cn", // China
  105.     "co" => "whois.nic.co", // Colombia
  106.     "com" => "whois.verisign-grs.com",
  107.     "coop" => "whois.nic.coop",
  108.     // cr - Costa Rica - no whois server assigned
  109.     // cu - Cuba - no whois server assigned
  110.     // cv - Cape Verde - no whois server assigned
  111.     // cw - Curacao - no whois server assigned
  112.     "cx" => "whois.nic.cx", // Christmas Island
  113.     // cy - Cyprus - no whois server assigned
  114.     "cz" => "whois.nic.cz", // Czech Republic
  115.     "de" => "whois.denic.de", // Germany
  116.     // dj - Djibouti - no whois server assigned
  117.     "dk" => "whois.dk-hostmaster.dk", // Denmark
  118.     "dm" => "whois.nic.dm", // Dominica
  119.     // do - Dominican Republic - no whois server assigned
  120.     "dz" => "whois.nic.dz", // Algeria
  121.     "ec" => "whois.nic.ec", // Ecuador
  122.     "edu" => "whois.educause.edu",
  123.     "ee" => "whois.eenet.ee", // Estonia
  124.     "eg" => "whois.ripe.net", // Egypt
  125.     // er - Eritrea - no whois server assigned
  126.     "es" => "whois.nic.es", // Spain
  127.     // et - Ethiopia - no whois server assigned
  128.     "eu" => "whois.eu",
  129.     "fi" => "whois.ficora.fi", // Finland
  130.     // fj - Fiji - no whois server assigned
  131.     // fk - Falkland Islands - no whois server assigned
  132.     // fm - Micronesia, Federated States Of - no whois server assigned
  133.     "fo" => "whois.nic.fo", // Faroe Islands
  134.     "fr" => "whois.nic.fr", // France
  135.     // ga - Gabon - no whois server assigned
  136.     "gd" => "whois.nic.gd", // Grenada
  137.     // ge - Georgia - no whois server assigned
  138.     // gf - French Guiana - no whois server assigned
  139.     "gg" => "whois.gg", // Guernsey
  140.     // gh - Ghana - no whois server assigned
  141.     "gi" => "whois2.afilias-grs.net", // Gibraltar
  142.     "gl" => "whois.nic.gl", // Greenland (Denmark)
  143.     // gm - Gambia - no whois server assigned
  144.     // gn - Guinea - no whois server assigned
  145.     "gov" => "whois.nic.gov",
  146.     // gr - Greece - no whois server assigned
  147.     // gt - Guatemala - no whois server assigned
  148.     "gs" => "whois.nic.gs", // South Georgia And The South Sandwich Islands
  149.     // gu - Guam - no whois server assigned
  150.     // gw - Guinea-bissau - no whois server assigned
  151.     "gy" => "whois.registry.gy", // Guyana
  152.     "hk" => "whois.hkirc.hk", // Hong Kong
  153.     // hm - Heard and McDonald Islands (Australia) - no whois server assigned
  154.     "hn" => "whois.nic.hn", // Honduras
  155.     "hr" => "whois.dns.hr", // Croatia
  156.     "ht" => "whois.nic.ht", // Haiti
  157.     "hu" => "whois.nic.hu", // Hungary
  158.     // id - Indonesia - no whois server assigned
  159.     "ie" => "whois.domainregistry.ie", // Ireland
  160.     "il" => "whois.isoc.org.il", // Israel
  161.     "im" => "whois.nic.im", // Isle of Man
  162.     "in" => "whois.inregistry.net", // India
  163.     "info" => "whois.afilias.net",
  164.     "int" => "whois.iana.org",
  165.     "io" => "whois.nic.io", // British Indian Ocean Territory
  166.     "iq" => "whois.cmc.iq", // Iraq
  167.     "ir" => "whois.nic.ir", // Iran, Islamic Republic Of
  168.     "is" => "whois.isnic.is", // Iceland
  169.     "it" => "whois.nic.it", // Italy
  170.     "je" => "whois.je", // Jersey
  171.     // jm - Jamaica - no whois server assigned
  172.     // jo - Jordan - no whois server assigned
  173.     "jobs" => "jobswhois.verisign-grs.com",
  174.     "jp" => "whois.jprs.jp", // Japan
  175.     "ke" => "whois.kenic.or.ke", // Kenya
  176.     "kg" => "www.domain.kg", // Kyrgyzstan
  177.     // kh - Cambodia - no whois server assigned
  178.     "ki" => "whois.nic.ki", // Kiribati
  179.     // km - Comoros - no whois server assigned
  180.     // kn - Saint Kitts And Nevis - no whois server assigned
  181.     // kp - Korea, Democratic People's Republic Of - no whois server assigned
  182.     "kr" => "whois.kr", // Korea, Republic Of
  183.     // kw - Kuwait - no whois server assigned
  184.     // ky - Cayman Islands - no whois server assigned
  185.     "kz" => "whois.nic.kz", // Kazakhstan
  186.     "la" => "whois.nic.la", // Lao People's Democratic Republic
  187.     // lb - Lebanon - no whois server assigned
  188.     // lc - Saint Lucia - no whois server assigned
  189.     "li" => "whois.nic.li", // Liechtenstein
  190.     // lk - Sri Lanka - no whois server assigned
  191.     "lt" => "whois.domreg.lt", // Lithuania
  192.     "lu" => "whois.dns.lu", // Luxembourg
  193.     "lv" => "whois.nic.lv", // Latvia
  194.     "ly" => "whois.nic.ly", // Libya
  195.     "ma" => "whois.iam.net.ma", // Morocco
  196.     // mc - Monaco - no whois server assigned
  197.     "md" => "whois.nic.md", // Moldova
  198.     "me" => "whois.nic.me", // Montenegro
  199.     "mg" => "whois.nic.mg", // Madagascar
  200.     // mh - Marshall Islands - no whois server assigned
  201.     "mil" => "whois.nic.mil",
  202.     // mk - Macedonia, The Former Yugoslav Republic Of - no whois server assigned
  203.     "ml" => "whois.dot.ml", // Mali
  204.     // mm - Myanmar - no whois server assigned
  205.     "mn" => "whois.nic.mn", // Mongolia
  206.     "mo" => "whois.monic.mo", // Macao
  207.     "mobi" => "whois.dotmobiregistry.net",
  208.     "mp" => "whois.nic.mp", // Northern Mariana Islands
  209.     // mq - Martinique (France) - no whois server assigned
  210.     // mr - Mauritania - no whois server assigned
  211.     "ms" => "whois.nic.ms", // Montserrat
  212.     // mt - Malta - no whois server assigned
  213.     "mu" => "whois.nic.mu", // Mauritius
  214.     "museum" => "whois.museum",
  215.     // mv - Maldives - no whois server assigned
  216.     // mw - Malawi - no whois server assigned
  217.     "mx" => "whois.mx", // Mexico
  218.     "my" => "whois.domainregistry.my", // Malaysia
  219.     // mz - Mozambique - no whois server assigned
  220.     "na" => "whois.na-nic.com.na", // Namibia
  221.     "name" => "whois.nic.name",
  222.     "nc" => "whois.nc", // New Caledonia
  223.     // ne - Niger - no whois server assigned
  224.     "net" => "whois.verisign-grs.net",
  225.     "nf" => "whois.nic.nf", // Norfolk Island
  226.     "ng" => "whois.nic.net.ng", // Nigeria
  227.     // ni - Nicaragua - no whois server assigned
  228.     "nl" => "whois.domain-registry.nl", // Netherlands
  229.     "no" => "whois.norid.no", // Norway
  230.     // np - Nepal - no whois server assigned
  231.     // nr - Nauru - no whois server assigned
  232.     "nu" => "whois.nic.nu", // Niue
  233.     "nz" => "whois.srs.net.nz", // New Zealand
  234.     "om" => "whois.registry.om", // Oman
  235.     "org" => "whois.pir.org",
  236.     // pa - Panama - no whois server assigned
  237.     "pe" => "kero.yachay.pe", // Peru
  238.     "pf" => "whois.registry.pf", // French Polynesia
  239.     // pg - Papua New Guinea - no whois server assigned
  240.     // ph - Philippines - no whois server assigned
  241.     // pk - Pakistan - no whois server assigned
  242.     "pl" => "whois.dns.pl", // Poland
  243.     "pm" => "whois.nic.pm", // Saint Pierre and Miquelon (France)
  244.     // pn - Pitcairn (New Zealand) - no whois server assigned
  245.     "post" => "whois.dotpostregistry.net",
  246.     "pr" => "whois.nic.pr", // Puerto Rico
  247.     "pro" => "whois.dotproregistry.net",
  248.     // ps - Palestine, State of - no whois server assigned
  249.     "pt" => "whois.dns.pt", // Portugal
  250.     "pw" => "whois.nic.pw", // Palau
  251.     // py - Paraguay - no whois server assigned
  252.     "qa" => "whois.registry.qa", // Qatar
  253.     "re" => "whois.nic.re", // Reunion (France)
  254.     "ro" => "whois.rotld.ro", // Romania
  255.     "rs" => "whois.rnids.rs", // Serbia
  256.     "ru" => "whois.tcinet.ru", // Russian Federation
  257.     // rw - Rwanda - no whois server assigned
  258.     "sa" => "whois.nic.net.sa", // Saudi Arabia
  259.     "sb" => "whois.nic.net.sb", // Solomon Islands
  260.     "sc" => "whois2.afilias-grs.net", // Seychelles
  261.     // sd - Sudan - no whois server assigned
  262.     "se" => "whois.iis.se", // Sweden
  263.     "sg" => "whois.sgnic.sg", // Singapore
  264.     "sh" => "whois.nic.sh", // Saint Helena
  265.     "si" => "whois.arnes.si", // Slovenia
  266.     "sk" => "whois.sk-nic.sk", // Slovakia
  267.     // sl - Sierra Leone - no whois server assigned
  268.     "sm" => "whois.nic.sm", // San Marino
  269.     "sn" => "whois.nic.sn", // Senegal
  270.     "so" => "whois.nic.so", // Somalia
  271.     // sr - Suriname - no whois server assigned
  272.     "st" => "whois.nic.st", // Sao Tome And Principe
  273.     "su" => "whois.tcinet.ru", // Russian Federation
  274.     // sv - El Salvador - no whois server assigned
  275.     "sx" => "whois.sx", // Sint Maarten (dutch Part)
  276.     "sy" => "whois.tld.sy", // Syrian Arab Republic
  277.     // sz - Swaziland - no whois server assigned
  278.     "tc" => "whois.meridiantld.net", // Turks And Caicos Islands
  279.     // td - Chad - no whois server assigned
  280.     "tel" => "whois.nic.tel",
  281.     "tf" => "whois.nic.tf", // French Southern Territories
  282.     // tg - Togo - no whois server assigned
  283.     "th" => "whois.thnic.co.th", // Thailand
  284.     "tj" => "whois.nic.tj", // Tajikistan
  285.     "tk" => "whois.dot.tk", // Tokelau
  286.     "tl" => "whois.nic.tl", // Timor-leste
  287.     "tm" => "whois.nic.tm", // Turkmenistan
  288.     "tn" => "whois.ati.tn", // Tunisia
  289.     "to" => "whois.tonic.to", // Tonga
  290.     "tp" => "whois.nic.tl", // Timor-leste
  291.     "tr" => "whois.nic.tr", // Turkey
  292.     "travel" => "whois.nic.travel",
  293.     // tt - Trinidad And Tobago - no whois server assigned
  294.     "tv" => "tvwhois.verisign-grs.com", // Tuvalu
  295.     "tw" => "whois.twnic.net.tw", // Taiwan
  296.     "tz" => "whois.tznic.or.tz", // Tanzania, United Republic Of
  297.     "ua" => "whois.ua", // Ukraine
  298.     "ug" => "whois.co.ug", // Uganda
  299.     "uk" => "whois.nic.uk", // United Kingdom
  300.     "us" => "whois.nic.us", // United States
  301.     "uy" => "whois.nic.org.uy", // Uruguay
  302.     "uz" => "whois.cctld.uz", // Uzbekistan
  303.     // va - Holy See (vatican City State) - no whois server assigned
  304.     "vc" => "whois2.afilias-grs.net", // Saint Vincent And The Grenadines
  305.     "ve" => "whois.nic.ve", // Venezuela
  306.     "vg" => "whois.adamsnames.tc", // Virgin Islands, British
  307.     // vi - Virgin Islands, US - no whois server assigned
  308.     // vn - Viet Nam - no whois server assigned
  309.     // vu - Vanuatu - no whois server assigned
  310.     "wf" => "whois.nic.wf", // Wallis and Futuna
  311.     "ws" => "whois.website.ws", // Samoa
  312.     "xxx" => "whois.nic.xxx",
  313.     // ye - Yemen - no whois server assigned
  314.     "yt" => "whois.nic.yt", // Mayotte
  315.     "yu" => "whois.ripe.net");
  316.  
  317. function LookupDomain($domain){
  318.     global $whoisservers;
  319.     $domain_parts = explode(".", $domain);
  320.     $tld = strtolower(array_pop($domain_parts));
  321.     $whoisserver = $whoisservers[$tld];
  322.     if(!$whoisserver) {
  323.         return "Error: No appropriate Whois server found for $domain domain!";
  324.     }
  325.     $result = QueryWhoisServer($whoisserver, $domain);
  326.     if(!$result) {
  327.         return "Error: No results retrieved from $whoisserver server for $domain domain!";
  328.     }
  329.     else {
  330.         while(strpos($result, "Whois Server:") !== FALSE){
  331.             preg_match("/Whois Server: (.*)/", $result, $matches);
  332.             $secondary = $matches[1];
  333.             if($secondary) {
  334.                 $result = QueryWhoisServer($secondary, $domain);
  335.                 $whoisserver = $secondary;
  336.             }
  337.         }
  338.     }
  339.     return "$domain domain lookup results from $whoisserver server:\n\n" . $result;
  340. }
  341.  
  342. function LookupIP($ip) {
  343.     $whoisservers = array(
  344.         //"whois.afrinic.net", // Africa - returns timeout error :-(
  345.         "whois.lacnic.net", // Latin America and Caribbean - returns data for ALL locations worldwide :-)
  346.         "whois.apnic.net", // Asia/Pacific only
  347.         "whois.arin.net", // North America only
  348.         "whois.ripe.net" // Europe, Middle East and Central Asia only
  349.     );
  350.     $results = array();
  351.     foreach($whoisservers as $whoisserver) {
  352.         $result = QueryWhoisServer($whoisserver, $ip);
  353.         if($result && !in_array($result, $results)) {
  354.             $results[$whoisserver]= $result;
  355.         }
  356.     }
  357.     $res = "RESULTS FOUND: " . count($results);
  358.     foreach($results as $whoisserver=>$result) {
  359.         $res .= "\n\n-------------\nLookup results for " . $ip . " from " . $whoisserver . " server:\n\n" . $result;
  360.     }
  361.     return $res;
  362. }
  363.  
  364. function ValidateIP($ip) {
  365.     $ipnums = explode(".", $ip);
  366.     if(count($ipnums) != 4) {
  367.         return false;
  368.     }
  369.     foreach($ipnums as $ipnum) {
  370.         if(!is_numeric($ipnum) || ($ipnum > 255)) {
  371.             return false;
  372.         }
  373.     }
  374.     return $ip;
  375. }
  376.  
  377. function ValidateDomain($domain) {
  378.     if(!preg_match("/^([-a-z0-9]{2,100})\.([a-z\.]{2,8})$/i", $domain)) {
  379.         return false;
  380.     }
  381.     return $domain;
  382. }
  383.  
  384. function QueryWhoisServer($whoisserver, $domain) {
  385.     $port = 43;
  386.     $timeout = 10;
  387.     $fp = @fsockopen($whoisserver, $port, $errno, $errstr, $timeout) or die("Socket Error " . $errno . " - " . $errstr);
  388.     //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.
  389.     fputs($fp, $domain . "\r\n");
  390.     $out = "";
  391.     while(!feof($fp)){
  392.         $out .= fgets($fp);
  393.     }
  394.     fclose($fp);
  395.  
  396.     $res = "";
  397.     if((strpos(strtolower($out), "error") === FALSE) && (strpos(strtolower($out), "not allocated") === FALSE)) {
  398.         $rows = explode("\n", $out);
  399.         foreach($rows as $row) {
  400.             $row = trim($row);
  401.             if(($row != '') && ($row{0} != '#') && ($row{0} != '%')) {
  402.                 $res .= $row."\n";
  403.             }
  404.         }
  405.     }
  406.     return $res;
  407. }
  408. ?>
  409.  
  410. <?php
  411. if($domain) {
  412.     $domain = trim($domain);
  413.     if(substr(strtolower($domain), 0, 7) == "http://") $domain = substr($domain, 7);
  414.     if(substr(strtolower($domain), 0, 4) == "www.") $domain = substr($domain, 4);
  415.     if(ValidateIP($domain)) {
  416.         $result = LookupIP($domain);
  417.     }
  418.     elseif(ValidateDomain($domain)) {
  419.         $result = LookupDomain($domain);
  420.     }
  421.     else die("Invalid Input!");
  422.     echo "<pre>\n" . $result . "\n</pre>\n";
  423. }
  424. ?>
  425.  
  426.  
  427.  </body>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement