Version: 1.0
Type: Class
Category: Networking
License: GNU General Public License
Description: This class checks the availability of a domain and gets the whois data. You can check domains of the following tld’s:
* – ac
* – ac.jp
* – ac.uk
* – ad.jp
* – aero
* – ag
* – al
* – at
* – au
* – as
* – asn.au
* – be
* – bg
* – biz
* – br
* – ca
* – cc
* – ch
* – cl
* – cd
* – com
* – com.au
* – com.eg
* – com.mx
* – com.tw
* – conf.au
* – co.uk
* – csiro.au
* – cx
* – cz
* – de
* – dk
* – ee
* – edu
* – edu.au
* – eg
* – es
* – eun.eg
* – edu.id.au
* – fi
* – fo
* – fr
* – ge
* – gl
* – gr
* – gr.jp
* – gs
* – gob.mx
* – gov.au
* – hm
* – mc
* – mil
* – ms
* – mx
* – name
* – ne.jp
* – net
* – net.au
* – net.eg
* – net.lu
* – net.mx
* – net.uk
* – net.tw
* – nl
* – id.au
* – ie
* – info
* – info.au
* – it
* – idv.tw
* – jp
* – la
* – li
* – lk
* – lt
* – lu
* – ltd.uk
* – plc.uk
* – or.jp
* – org
* – org.au
* – org.lu
* – org.tw
* – org.uk
* – pl
* – pt
* – ru
* – th
* – to
* – tw
* – uk
* – wattle.id.au
<? /** * This class checks the availability of a domain and gets the whois data * You can check domains of the following tld's * (PLEASE CONTACT ME IF A WHOIS SERVER ISN'T RIGHT!) * - ac * - ac.jp * - ac.uk * - ad.jp * - aero * - ag * - al * - at * - au * - as * - asn.au * - be * - bg * - biz * - br * - ca * - cc * - ch * - cl * - cd * - com * - com.au * - com.eg * - com.mx * - com.tw * - conf.au * - co.uk * - csiro.au * - cx * - cz * - de * - dk * - ee * - edu * - edu.au * - eg * - es * - eun.eg * - edu.id.au * - fi * - fo * - fr * - ge * - gl * - gr * - gr.jp * - gs * - gob.mx * - gov.au * - hm * - mc * - mil * - ms * - mx * - name * - ne.jp * - net * - net.au * - net.eg * - net.lu * - net.mx * - net.uk * - net.tw * - nl * - id.au * - ie * - info * - info.au * - it * - idv.tw * - jp * - la * - li * - lk * - lt * - lu * - ltd.uk * - plc.uk * - or.jp * - org * - org.au * - org.lu * - org.tw * - org.uk * - pl * - pt * - ru * - th * - to * - tw * - uk * - wattle.id.au * * @author Sven Wagener <[email protected]> * @copyright Intertribe Limited * @include Funktion:_include_ */ class domain{ var $domain=""; var $servers=""; /** * Constructor of class domain * @param string $str_domainame the full name of the domain * @desc Constructor of class domain */ function domain($str_domainname){ /******************************* * Initializing server variables * array(top level domain,whois_Server,not_found_string)) **/ $i=0; $this->servers[$i++]=array("ac","whois.nic.ac","No match"); $this->servers[$i++]=array("ac.jp","whois.nic.ad.jp","No match"); $this->servers[$i++]=array("ac.uk","whois.ja.net","no entries"); $this->servers[$i++]=array("ad.jp","whois.nic.ad.jp","No match"); $this->servers[$i++]=array("aero","whois.information.aero","is available"); $this->servers[$i++]=array("ag","whois.nic.ag","does not exist"); $this->servers[$i++]=array("al","whois.ripe.net","No entries found"); $this->servers[$i++]=array("at","whois.nic.at","nothing found"); $this->servers[$i++]=array("au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("as","whois.nic.as","Domain Not Found"); $this->servers[$i++]=array("asn.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("be","whois.dns.be","No such domain"); $this->servers[$i++]=array("bg","whois.digsys.bg","does not exist"); $this->servers[$i++]=array("biz","whois.biz","Not found"); $this->servers[$i++]=array("br","whois.registro.br","No match"); $this->servers[$i++]=array("ca","whois.cira.ca","Status: AVAIL"); $this->servers[$i++]=array("cc","whois.nic.cc","No match"); $this->servers[$i++]=array("cd","whois.cd","No match"); $this->servers[$i++]=array("ch","whois.nic.ch","We do not have an entry"); $this->servers[$i++]=array("cl","whois.nic.cl","no existe"); $this->servers[$i++]=array("com","whois.verisign-grs.net","No match"); $this->servers[$i++]=array("com.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("com.eg","whois.ripe.net","No entries found"); $this->servers[$i++]=array("com.mx","whois.nic.mx","Nombre del Dominio"); $this->servers[$i++]=array("com.tw","whois.twnic.net","NO MATCH TIP"); $this->servers[$i++]=array("conf.au","whois.aunic.net","No entries found"); $this->servers[$i++]=array("co.jp","whois.nic.ad.jp","No match"); $this->servers[$i++]=array("co.uk","whois.nic.uk","No match for"); $this->servers[$i++]=array("csiro.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("cx","whois.nic.cx","No match"); $this->servers[$i++]=array("cz","whois.nic.cz","No data found"); $this->servers[$i++]=array("de","whois.denic.de","No entries found"); $this->servers[$i++]=array("dk","whois.dk-hostmaster.dk","No entries found"); $this->servers[$i++]=array("ee","whois.eenet.ee","NOT FOUND"); $this->servers[$i++]=array("edu","whois.verisign-grs.net","No match"); $this->servers[$i++]=array("edu.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("eg","whois.ripe.net","No entries found"); $this->servers[$i++]=array("es","whois.ripe.net","No entries found"); $this->servers[$i++]=array("eun.eg","whois.ripe.net","No entries found"); $this->servers[$i++]=array("emu.id.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("fi","whois.ripe.net","No entries found"); $this->servers[$i++]=array("fo","whois.ripe.net","no entries found"); $this->servers[$i++]=array("fr","whois.nic.fr","No entries found"); $this->servers[$i++]=array("ge","whois.ripe.net","no entries found"); $this->servers[$i++]=array("gl","whois.ripe.net","no entries found"); $this->servers[$i++]=array("gr","whois.ripe.net","no entries found"); $this->servers[$i++]=array("gr.jp","whois.nic.ad.jp","No match"); $this->servers[$i++]=array("gov.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("gob.mx","whois.nic.mx","Nombre del Dominio"); $this->servers[$i++]=array("gs","whois.adamsnames.tc","is not registered"); $this->servers[$i++]=array("hm","whois.registry.hm","(null)"); $this->servers[$i++]=array("mc","whois.ripe.net","No entries found"); $this->servers[$i++]=array("mil","whois.nic.mil","No match"); $this->servers[$i++]=array("ms","whois.adamsnames.tc","is not registered"); $this->servers[$i++]=array("mx","whois.nic.mx","Nombre del Dominio"); $this->servers[$i++]=array("name","whois.nic.name","No match"); $this->servers[$i++]=array("ne.jp","whois.nic.ad.jp","No match"); $this->servers[$i++]=array("net","whois.verisign-grs.net","No match"); $this->servers[$i++]=array("net.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("net.eg","whois.ripe.net","No entries found"); $this->servers[$i++]=array("net.lu","whois.dns.lu","No entries found"); $this->servers[$i++]=array("net.mx","whois.nic.mx","Nombre del Dominio"); $this->servers[$i++]=array("net.uk","whois.nic.uk","No match for "); $this->servers[$i++]=array("net.tw","whois.twnic.net","NO MATCH TIP"); $this->servers[$i++]=array("nl","whois.domain-registry.nl","is not a registered domain"); $this->servers[$i++]=array("id.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("ie","whois.domainregistry.ie","no match"); $this->servers[$i++]=array("info","whois.afilias.info","Not found"); $this->servers[$i++]=array("info.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("it","whois.nic.it","No entries found"); $this->servers[$i++]=array("idv.tw","whois.twnic.net","NO MATCH TIP"); $this->servers[$i++]=array("int","whois.iana.org","not found"); $this->servers[$i++]=array("is","whois.isnic.is","No entries found"); $this->servers[$i++]=array("jp","whois.nic.ad.jp","No match"); $this->servers[$i++]=array("la","whois.nic.la","NO MATCH"); $this->servers[$i++]=array("li","whois.nic.ch","We do not have an entry"); $this->servers[$i++]=array("lk","whois.nic.lk","No domain registered"); $this->servers[$i++]=array("lt","ns.litnet.lt","No matches found"); $this->servers[$i++]=array("lu","whois.dns.lu","No entries found"); $this->servers[$i++]=array("ltd.uk","whois.nic.uk","No match for"); $this->servers[$i++]=array("plc.uk","whois.nic.uk","No match for"); $this->servers[$i++]=array("or.jp","whois.nic.ad.jp","No match"); $this->servers[$i++]=array("org","whois.verisign-grs.net","No match"); $this->servers[$i++]=array("org.au","whois.aunic.net","No Data Found"); $this->servers[$i++]=array("org.lu","whois.dns.lu","No entries found"); $this->servers[$i++]=array("org.tw","whois.twnic.net","NO MATCH TIP"); $this->servers[$i++]=array("org.uk","whois.nic.uk","No match for"); $this->servers[$i++]=array("pl","nazgul.nask.waw.pl","does not exists"); $this->servers[$i++]=array("pt","whois.ripe.net","No entries found"); $this->servers[$i++]=array("ru","whois.ripn.ru","No entries found"); $this->servers[$i++]=array("th","whois.nic.uk","No entries found"); $this->servers[$i++]=array("to","whois.tonic.to","No match"); $this->servers[$i++]=array("tw","whois.twnic.net","NO MATCH TIP"); $this->servers[$i++]=array("uk","whois.thnic.net","No match for"); $this->servers[$i++]=array("wattle.id.au","whois.aunic.net","No Data Found"); $this->domain=$str_domainname; } /** * Returns the whois data of the domain * @return string $whoisdata Whois data as string * @desc Returns the whois data of the domain */ function info(){ if($this->is_valid()){ $tldname=$this->get_tld(); $domainname=$this->get_domain(); $whois_server=$this->get_whois_server(); // If tldname have been found if($whois_server!=""){ // Getting whois information $fp = fsockopen($whois_server,43); $dom=$domainname.".".$tldname; fputs($fp, "$domrn"); // Getting string $string=""; while(!feof($fp)){ $string.=fgets($fp,128); } fclose($fp); return $string; }else{ return "No whois server for this tld in list!"; } }else{ return "Domainname isn't valid!"; } } /** * Returns the whois data of the domain in HTML format * @return string $whoisdata Whois data as string in HTML * @desc Returns the whois data of the domain in HTML format */ function html_info(){ return nl2br($this->info()); } /** * Returns name of the whois server of the tld * @return string $server the whois servers hostname * @desc Returns name of the whois server of the tld */ function get_whois_server(){ $found=false; $tldname=$this->get_tld(); for($i=0;$i<count($this->servers);$i++){ if($this->servers[$i][0]==$tldname){ $server=$this->servers[$i][1]; $full_dom=$this->servers[$i][3]; $found=true; } } return $server; } /** * Returns the tld of the domain without domain name * @return string $tldname the tlds name without domain name * @desc Returns the tld of the domain without domain name */ function get_tld(){ // Splitting domainname $domain=split(".",$this->domain); if(count($domain)>2){ $domainname=$domain[0]; for($i=1;$i<count($domain);$i++){ if($i==1){ $tldname=$domain[$i]; }else{ $tldname.=".".$domain[$i]; } } }else{ $domainname=$domain[0]; $tldname=$domain[1]; } return $tldname; } /** * Returns the name of the domain without tld * @return string $domain the domains name without tld name * @desc Returns the name of the domain without tld */ function get_domain(){ // Splitting domainname $domain=split(".",$this->domain); return $domain[0]; } /** * Returns the string which will be returned by the whois server of the tld if a domain is avalable * @return string $notfound the string which will be returned by the whois server of the tld if a domain is avalable * @desc Returns the string which will be returned by the whois server of the tld if a domain is avalable */ function get_notfound_string(){ $found=false; $tldname=$this->get_tld(); for($i=0;$i<count($this->servers);$i++){ if($this->servers[$i][0]==$tldname){ $notfound=$this->servers[$i][2]; } } return $notfound; } /** * Returns if the domain is available for registering * @return boolean $is_available Returns 1 if domain is available and 0 if domain isn't available * @desc Returns if the domain is available for registering */ function is_available(){ $whois_string=$this->info(); if(preg_match("/".$this->get_notfound_string()."/i",$whois_string)){ return true; }else{ return false; } } /** * Returns if the domain name is valid * @return boolean $is_valid Returns 1 if domain is valid and 0 if domain isn't valid * @desc Returns if the domain name is valid */ function is_valid(){ if(ereg("^[a-zA-Z0-9-]{3,}$",$this->get_domain()) && !preg_match("/--/",$this->get_domain())){ return true; }else{ return false; } } } ?>