Advertisement
Guest User

Untitled

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