|
<?php
|
|
/*
|
|
Whois.php PHP classes to conduct whois queries
|
|
|
|
Copyright (C)1999,2005 easyDNS Technologies Inc. & Mark Jeftovic
|
|
|
|
Maintained by David Saez (david@ols.es)
|
|
|
|
For the most recent version of this package visit:
|
|
|
|
http://www.phpwhois.org
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
/* utils.whois 1.0 Colin Viebrock <cmv@easydns.com> 1999/12/06 */
|
|
/* 1.1 Mark Jeftovic <markjr@easydns.com> 1999/12/15 */
|
|
|
|
class utils extends Whois {
|
|
|
|
var $REGISTRARS = array(
|
|
'ac' => 'http://www.nic.ac/cgi-bin/whois',
|
|
'ad' => 'http://www.nic.ad/',
|
|
'ar' => 'http://www.nic.ar/consultas/consdom.htm',
|
|
'as' => 'http://www.nic.as/ASWhois.html',
|
|
'at' => 'http://whois.aco.net/',
|
|
'au' => 'http://www.aunic.net/namestatus.html',
|
|
'be' => 'http://www.DNS.BE/domain-info/info.html',
|
|
'br' => 'http://registro.fapesp.br/cgi-bin/nicbr/domainsearch',
|
|
'ca' => 'http://www.cdnnet.ca/',
|
|
'ch' => 'http://www.switch.ch/domain/search_form.html',
|
|
'ci' => 'http://whois.nic.ci',
|
|
'cl' => 'http://sunsite.dcc.uchile.cl/cgi-bin/dom-CL',
|
|
'cr' => 'http://www.nic.cr/consulta-dns.html',
|
|
'cx' => 'http://whois.nic.cx/',
|
|
'cz' => 'gopher://gopher.eunet.cz:70/00/cz-info/cz.list',
|
|
'de' => 'http://www.nic.de/servlet/Whois',
|
|
'dk' => 'http://www.dk.net/nic/resIPno.html',
|
|
'es' => 'http://www.nic.es/whois/',
|
|
'fi' => 'http://www.thk.fi/englanti/internet/n2579.htm',
|
|
'fm' => 'http://www.dot.fm/search.html',
|
|
'fr' => 'http://www.nic.fr/info/whois.html',
|
|
'ge' => 'http://georgia.net.ge/domain/',
|
|
'gi' => 'http://www.gibnet.gi/nic/domains.html',
|
|
'gr' => 'http://pythia.ics.forth.gr/cgi-bin/webwhois',
|
|
'hm' => 'http://www.nic.hm/whois.html',
|
|
'hr' => 'http://ds.carnet.hr/whois/diggere.html',
|
|
'ie' => 'http://www.ucd.ie/hostmaster/dom-list.html',
|
|
'im' => 'http://www.nic.im/exist.html',
|
|
'io' => 'http://www.io.io/whois.html',
|
|
'is' => 'http://www.isnet.is/en/sites.html',
|
|
'it' => 'http://www.nis.garr.it/cgi-bin/HY/rc?/who/conf',
|
|
'jp' => 'http://www.nic.ad.jp/cgi-bin/whois_gate',
|
|
'kr' => 'http://www.krnic.net/cgi-bin/whois',
|
|
'kz' => 'http://www.domain.kz/search',
|
|
'li' => 'http://www.switch.ch/domain/search_form.html',
|
|
'lk' => 'http://www.nic.lk/cgi-bin/whois',
|
|
'lt' => 'http://vingis.sc-uni.ktu.lt/cgi-bin/whoisnoc?',
|
|
'lu' => 'http://www.domain-registration.lu/whois.html',
|
|
'mm' => 'http://www.nic.mm/whois.html',
|
|
'mt' => 'http://www.um.edu.mt/nic/dir/',
|
|
'mx' => 'http://www.nic.mx:81/cgi/db/dom',
|
|
'nl' => 'http://www.domain-registry.nl/NLwhois.html',
|
|
'nu' => 'http://www.nunames.nu',
|
|
'nz' => 'http://servius.waikato.ac.nz/isocnz/nz-domain/DNSquery.html',
|
|
'pa' => 'http://www.nic.pa/indice2.html',
|
|
'pe' => 'http://ekeko.rcp.net.pe/rcp/PE-NIC/busqueda.html',
|
|
'pk' => 'http://www.pknic.net.pk/pknic/assigned.htm',
|
|
'pt' => 'http://www.fccn.pt/dns/pt.html',
|
|
'ru' => 'http://www.ripn.net/nic/NICHomePage.html',
|
|
'se' => 'http://www.sunet.se/domreg/',
|
|
'sg' => 'http://www.nic.net.sg/sgnametk.htm',
|
|
'sk' => 'http://www.eunet.sk/sk-nic/',
|
|
'st' => 'http://www.nic.sh/cgi-bin/whois',
|
|
'th' => 'http://www.thnic.net/whois.html',
|
|
'tm' => 'http://www.nic.tm/cgi-bin/search',
|
|
'to' => 'http://www.tonic.to/newname.htm',
|
|
'tw' => 'http://www.twnic.net/ipdomain.html',
|
|
'uk' => 'http://www.pipex.net/~guyd/rwhois.html',
|
|
'us' => 'http://www.isi.edu:80/in-notes/usdnr/rwhois.html',
|
|
've' => 'http://www.nic.ve/nicwho01.html',
|
|
'yu' => 'http://ubbg.etf.bg.ac.yu/yu-tld/domains.html',
|
|
'za' => 'http://co.za/whois.shtml'
|
|
);
|
|
|
|
function getRegistrar($cc) {
|
|
$cc = trim(strtolower($cc));
|
|
$temp = $this->REGISTRARS;
|
|
if ($temp[$cc]) {
|
|
return $temp[$cc];
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// showObject() and debugObject()
|
|
// - debug code to show an object or array
|
|
|
|
function showObject(&$obj) {
|
|
$r = $this->debugObject($obj);
|
|
return "<PRE>$r</PRE>\n";
|
|
}
|
|
|
|
function debugObject($obj,$indent=0) {
|
|
if (is_Array($obj) || is_Object($obj)) {
|
|
$return = '';
|
|
while (list($k,$v)=each($obj)) {
|
|
for ($i=0;$i<$indent;$i++) {
|
|
$return .= ' ';
|
|
}
|
|
$return .= $k."->$v\n";
|
|
$return .= $this->debugObject($v,$indent+1);
|
|
}
|
|
return $return;
|
|
}
|
|
}
|
|
|
|
function ns_rr_defined($query) {
|
|
return checkdnsrr($query,'NS');
|
|
}
|
|
|
|
// get nice HTML output
|
|
|
|
function showHTML($result, $link_myself=true, $params='$0') {
|
|
|
|
// adds links fort HTML output
|
|
|
|
$email_regex = "/([-_\w\.]+)(@)([-_\w\.]+)\b/i";
|
|
$html_regex = "/(?:^|\b)((((http|https|ftp):\/\/)|(www\.))([\w\.]+)([,:%#&\/?~=\w+\.-]+))(?:\b|$)/is";
|
|
$ip_regex = "/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/i";
|
|
|
|
$out = implode($result['rawdata'],"\n");
|
|
|
|
$out = preg_replace ($email_regex, '<a href="mailto:$0">$0</a>', $out);
|
|
$out = preg_replace_callback ($html_regex, 'href_replace', $out);
|
|
|
|
if ($link_myself)
|
|
{
|
|
$out = preg_replace ($ip_regex, '<a href="'.url_lang::base().'/tools/whois/'.$params.'">$0</a>', $out);
|
|
|
|
if (isset($result['regrinfo']['domain']['nserver']))
|
|
{
|
|
$nserver = $result['regrinfo']['domain']['nserver'];
|
|
|
|
if (is_array($nserver))
|
|
{
|
|
reset($nserver);
|
|
while (list($host, $ip) = each($nserver))
|
|
{
|
|
$url = '<a href="'. $_SERVER['PHP_SELF'].'?'.str_replace('$0',$ip,$params)."\">$host</a>";
|
|
$out = str_replace($host, $url, $out);
|
|
$out = str_replace(strtoupper($host), $url, $out);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Add bold field names
|
|
|
|
$out = preg_replace ("/(?m)^([\w\s-&;]+:)/", '<b>$1</b>', $out);
|
|
|
|
// Add italics for disclaimer
|
|
|
|
$out = preg_replace ("/(?m)^(%.*)/", '<i>$0</i>', $out);
|
|
|
|
return str_replace("\n","<br></br>\n",$out);
|
|
}
|
|
}
|
|
|
|
function href_replace($matches)
|
|
{
|
|
if (substr($matches[0],0,4)=='www.')
|
|
{
|
|
$web=$matches[0];
|
|
$url='http://'.$web;
|
|
}
|
|
else
|
|
{
|
|
$web=$matches[0];
|
|
$url=$web;
|
|
}
|
|
|
|
return '<a href="'.$url.'" target="_blank">'.$web.'</a>';
|
|
}
|
|
?>
|