Код
<form method=post>
<input type=text name=ip size=35>
<input type=submit value='Введите IP-адрес'>
</form>
<?
function writelog($lact,$IP,$file='log.txt'){
$log=fopen('logs/'.$file,"a+");
fputs($log,date("d/m/Y H:i:s ")); // текущее время
fputs($log,$IP.' ');
fputs($log,$lact."\n");
fclose($log);
return true;
}
function whois($url,$ds=false){
$srv = array(
array("int.ru","whois.int.ru","No match"),
array("ac","whois.nic.ac","No match"),
array("ac.cn","whois.cnnic.net.cn","no matching record"),
array("ac.jp","whois.nic.ad.jp","No match"),
array("ac.uk","whois.ja.net","No such domain"),
array("ad.jp","whois.nic.ad.jp","No match"),
array("adm.br","whois.nic.br","No match"),
array("adv.br","whois.nic.br","No match"),
array("aero","whois.information.aero","is available"),
array("ag","whois.nic.ag","Not found"),
array("agr.br","whois.nic.br","No match"),
array("ah.cn","whois.cnnic.net.cn","No entries found"),
array("al","whois.ripe.net","No entries found"),
array("am","whois.amnic.net","No match"),
array("am.br","whois.nic.br","No match"),
array("arq.br","whois.nic.br","No match"),
array("at","whois.nic.at","nothing found"),
array("au","whois.aunic.net","No Data Found"),
array("art.br","whois.nic.br","No match"),
array("as","whois.nic.as","Domain Not Found"),
array("asn.au","whois.aunic.net","No Data Found"),
array("ato.br","whois.nic.br","No match"),
array("av.tr","whois.nic.tr","Not found in database"),
array("az","whois.ripe.net","no entries found"),
array("ba","whois.ripe.net","No match for"),
array("be","whois.geektools.com","No such domain"),
array("bg","whois.digsys.bg","does not exist"),
array("bio.br","whois.nic.br","No match"),
array("biz","whois.biz","Not found"),
array("biz.tr","whois.nic.tr","Not found in database"),
array("bj.cn","whois.cnnic.net.cn","No entries found"),
array("bel.tr","whois.nic.tr","Not found in database"),
array("bmd.br","whois.nic.br","No match"),
array("br","whois.registro.br","No match"),
array("by","whois.ripe.net","no entries found"),
array("ca","whois.cira.ca","Status: AVAIL"),
array("cc","whois.nic.cc","No match"),
array("cd","whois.cd","No match"),
array("ch","whois.nic.ch","We do not have an entry"),
array("cim.br","whois.nic.br","No match"),
array("ck","whois.ck-nic.org.ck","No entries found"),
array("cl","whois.nic.cl","no existe"),
array("cn","whois.cnnic.net.cn","No entries found"),
array("cng.br","whois.nic.br","No match"),
array("cnt.br","whois.nic.br","No match"),
array("com","whois.verisign-grs.com","No match"),
array("com.au","whois.aunic.net","No Data Found"),
array("com.br","whois.nic.br","No match"),
array("com.cn","whois.cnnic.net.cn","No entries found"),
array("com.eg","whois.ripe.net","No entries found"),
array("com.hk","whois.hknic.net.hk","No Match for"),
array("com.mx","whois.nic.mx","Nombre del Dominio"),
array("com.tr","whois.nic.tr","Not found in database"),
array("com.ru","whois.ripn.ru","No entries found"),
array("com.tw","whois.twnic.net","NO MATCH TIP"),
array("com.ua","whois.ripe.net","No entries found"),
array("conf.au","whois.aunic.net","No entries found"),
array("co.at","whois.nic.at","nothing found"),
array("co.jp","whois.nic.ad.jp","No match"),
array("co.uk","whois.nic.uk","No match for"),
array("cq.cn","whois.cnnic.net.cn","No entries found"),
array("csiro.au","whois.aunic.net","No Data Found"),
array("cx","whois.nic.cx","No match"),
array("cy","whois.ripe.net","no entries found"),
array("cz","whois.nic.cz","No data found"),
array("de","whois.denic.de","not found"),
array("dr.tr","whois.nic.tr","Not found in database"),
array("dk","whois.dk-hostmaster.dk","No entries found"),
array("dz","whois.ripe.net","no entries found"),
array("ecn.br","whois.nic.br","No match"),
array("ee","whois.eenet.ee","NOT FOUND"),
array("edu","whois.verisign-grs.net","No match"),
array("edu.au","whois.aunic.net","No Data Found"),
array("edu.br","whois.nic.br","No match"),
array("edu.tr","whois.nic.tr","Not found in database"),
array("eg","whois.ripe.net","No entries found"),
array("es","whois.ripe.net","No entries found"),
array("esp.br","whois.nic.br","No match"),
array("etc.br","whois.nic.br","No match"),
array("eti.br","whois.nic.br","No match"),
array("eun.eg","whois.ripe.net","No entries found"),
array("emu.id.au","whois.aunic.net","No Data Found"),
array("eng.br","whois.nic.br","No match"),
array("eu","whois.eu","Status: FREE"),
array("far.br","whois.nic.br","No match"),
array("fi","whois.ripe.net","No entries found"),
array("fj","whois.usp.ac.fj",""),
array("fj.cn","whois.cnnic.net.cn","No entries found"),
array("fm.br","whois.nic.br","No match"),
array("fnd.br","whois.nic.br","No match"),
array("fo","whois.ripe.net","no entries found"),
array("fot.br","whois.nic.br","No match"),
array("fst.br","whois.nic.br","No match"),
array("fr","whois.nic.fr","No entries found"),
array("gb","whois.ripe.net","No match for"),
array("gb.com","whois.nomination.net","No match for"),
array("gb.net","whois.nomination.net","No match for"),
array("g12.br","whois.nic.br","No match"),
array("gd.cn","whois.cnnic.net.cn","No entries found"),
array("ge","whois.ripe.net","no entries found"),
array("gen.tr","whois.nic.tr","Not found in database"),
array("ggf.br","whois.nic.br","No match"),
array("gl","whois.ripe.net","no entries found"),
array("gr","whois.ripe.net","no entries found"),
array("gr.jp","whois.nic.ad.jp","No match"),
array("gs","whois.adamsnames.tc","is not registered"),
array("gs.cn","whois.cnnic.net.cn","No entries found"),
array("gov.au","whois.aunic.net","No Data Found"),
array("gov.br","whois.nic.br","No match"),
array("gov.cn","whois.cnnic.net.cn","No entries found"),
array("gov.hk","whois.hknic.net.hk","No Match for"),
array("gov.tr","whois.nic.tr","Not found in database"),
array("gob.mx","whois.nic.mx","Nombre del Dominio"),
array("gs","whois.adamsnames.tc","is not registered"),
array("gz.cn","whois.cnnic.net.cn","No entries found"),
array("gx.cn","whois.cnnic.net.cn","No entries found"),
array("he.cn","whois.cnnic.net.cn","No entries found"),
array("ha.cn","whois.cnnic.net.cn","No entries found"),
array("hb.cn","whois.cnnic.net.cn","No entries found"),
array("hi.cn","whois.cnnic.net.cn","No entries found"),
array("hl.cn","whois.cnnic.net.cn","No entries found"),
array("hn.cn","whois.cnnic.net.cn","No entries found"),
array("hm","whois.registry.hm","(null)"),
array("hk","whois.hknic.net.hk","No Match for"),
array("hk.cn","whois.cnnic.net.cn","No entries found"),
array("hu","whois.ripe.net","MAXCHARS:500"),
array("id.au","whois.aunic.net","No Data Found"),
array("ie","whois.domainregistry.ie","no match"),
array("ind.br","whois.nic.br","No match"),
array("imb.br","whois.nic.br","No match"),
array("inf.br","whois.nic.br","No match"),
array("info","whois.afilias.info","Not found"),
array("info.au","whois.aunic.net","No Data Found"),
array("info.tr","whois.nic.tr","Not found in database"),
array("it","whois.nic.it","No entries found"),
array("idv.tw","whois.twnic.net","NO MATCH TIP"),
array("int","whois.iana.org","not found"),
array("is","whois.isnic.is","No entries found"),
array("il","whois.isoc.org.il","No data was found"),
array("jl.cn","whois.cnnic.net.cn","No entries found"),
array("jor.br","whois.nic.br","No match"),
array("jp","whois.nic.ad.jp","No match"),
array("js.cn","whois.cnnic.net.cn","No entries found"),
array("jx.cn","whois.cnnic.net.cn","No entries found"),
array("k12.tr","whois.nic.tr","Not found in database"),
array("ke","whois.rg.net","No match for"),
array("kr","whois.krnic.net","is not registered"),
array("la","whois.nic.la","NO MATCH"),
array("lel.br","whois.nic.br","No match"),
array("li","whois.nic.ch","We do not have an entry"),
array("lk","whois.nic.lk","No domain registered"),
array("ln.cn","whois.cnnic.net.cn","No entries found"),
array("lt","ns.litnet.lt","No matches found"),
array("lu","whois.dns.lu","No entries found"),
array("lv","whois.ripe.net","no entries found"),
array("ltd.uk","whois.nic.uk","No match for"),
array("ma","whois.ripe.net","No entries found"),
array("mat.br","whois.nic.br","No match"),
array("mc","whois.ripe.net","No entries found"),
array("md","whois.ripe.net","No match for"),
array("me.uk","whois.nic.uk","No match for"),
array("med.br","whois.nic.br","No match"),
array("mil","whois.nic.mil","No match"),
array("mil.br","whois.nic.br","No match"),
array("mil.tr","whois.nic.tr","Not found in database"),
array("mk","whois.ripe.net","No match for"),
array("mn","whois.nic.mn","Domain not found"),
array("mo.cn","whois.cnnic.net.cn","No entries found"),
array("ms","whois.adamsnames.tc","is not registered"),
array("mt","whois.ripe.net","No Entries found"),
array("mus.br","whois.nic.br","No match"),
array("mx","whois.nic.mx","Nombre del Dominio"),
array("name","whois.nic.name","No match"),
array("name.tr","whois.nic.tr","Not found in database"),
array("ne.jp","whois.nic.ad.jp","No match"),
array("net","whois.verisign-grs.com","No match"),
array("net.au","whois.aunic.net","No Data Found"),
array("net.br","whois.nic.br","No match"),
array("net.cn","whois.cnnic.net.cn","No entries found"),
array("net.eg","whois.ripe.net","No entries found"),
array("net.hk","whois.hknic.net.hk","No Match for"),
array("net.lu","whois.dns.lu","No entries found"),
array("net.mx","whois.nic.mx","Nombre del Dominio"),
array("net.uk","whois.nic.uk","No match for "),
array("net.ru","whois.ripn.ru","No entries found"),
array("net.tr","whois.nic.tr","Not found in database"),
array("net.tw","whois.twnic.net","NO MATCH TIP"),
array("nl","whois.domain-registry.nl","is not a registered domain"),
array("nm.cn","whois.cnnic.net.cn","No entries found"),
array("no","whois.norid.no","no matches"),
array("no.com","whois.nomination.net","No match for"),
array("nom.br","whois.nic.br","No match"),
array("not.br","whois.nic.br","No match"),
array("ntr.br","whois.nic.br","No match"),
array("nu","whois.nic.nu","NO MATCH for"),
array("nx.cn","whois.cnnic.net.cn","No entries found"),
array("nz","whois.domainz.net.nz","Not Listed"),
array("plc.uk","whois.nic.uk","No match for"),
array("odo.br","whois.nic.br","No match"),
array("oop.br","whois.nic.br","No match"),
array("or.jp","whois.nic.ad.jp","No match"),
array("or.at","whois.nic.at","nothing found"),
array("org","whois.pir.org","NOT FOUND"),
array("org.au","whois.aunic.net","No Data Found"),
array("org.br","whois.nic.br","No match"),
array("org.cn","whois.cnnic.net.cn","No entries found"),
array("org.hk","whois.hknic.net.hk","No Match for"),
array("org.lu","whois.dns.lu","No entries found"),
array("org.ru","whois.ripn.net","No entries found"),
array("org.tr","whois.nic.tr","Not found in database"),
array("org.tw","whois.twnic.net","NO MATCH TIP"),
array("org.uk","whois.nic.uk","No match for"),
array("pk","whois.pknic.net","is not registered"),
array("pl","whois.ripe.net","No information about"),
array("pol.tr","whois.nic.tr","Not found in database"),
array("pp.ru","whois.ripn.ru","No entries found"),
array("ppg.br","whois.nic.br","No match"),
array("pro.br","whois.nic.br","No match"),
array("psi.br","whois.nic.br","No match"),
array("psc.br","whois.nic.br","No match"),
array("pt","whois.ripe.net","No match for"),
array("qh.cn","whois.cnnic.net.cn","No entries found"),
array("qsl.br","whois.nic.br","No match"),
array("rec.br","whois.nic.br","No match"),
array("ro","whois.ripe.net","No entries found"),
array("ru","whois.ripn.net","No entries found"),
array("sc.cn","whois.cnnic.net.cn","No entries found"),
array("sd.cn","whois.cnnic.net.cn","No entries found"),
array("se","whois.nic-se.se","No data found"),
array("se.com","whois.nomination.net","No match for"),
array("se.net","whois.nomination.net","No match for"),
array("sg","whois.nic.net.sg","NO entry found"),
array("sh","whois.nic.sh","No match for"),
array("sh.cn","whois.cnnic.net.cn","No entries found"),
array("si","whois.arnes.si","No entries found"),
array("sk","whois.ripe.net","no entries found"),
array("slg.br","whois.nic.br","No match"),
array("sm","whois.ripe.net","no entries found"),
array("sn.cn","whois.cnnic.net.cn","No entries found"),
array("srv.br","whois.nic.br","No match"),
array("st","whois.nic.st","No entries found"),
array("su","whois.ripn.net","No entries found"),
array("sx.cn","whois.cnnic.net.cn","No entries found"),
array("tc","whois.adamsnames.tc","is not registered"),
array("tel.tr","whois.nic.tr","Not found in database"),
array("th","whois.nic.uk","No entries found"),
array("tj.cn","whois.cnnic.net.cn","No entries found"),
array("tm","whois.nic.tm","No match for"),
array("tn","whois.ripe.net","No entries found"),
array("tmp.br","whois.nic.br","No match"),
array("to","whois.tonic.to","No match"),
array("tr","whois.ripe.net","Not found in database"),
array("trd.br","whois.nic.br","No match"),
array("tur.br","whois.nic.br","No match"),
array("tv","whois.nic.tv","MAXCHARS:75"),
array("tv.br","whois.nic.br","No match"),
array("tw","whois.twnic.net","NO MATCH TIP"),
array("tw.cn","whois.cnnic.net.cn","No entries found"),
array("ua","whois.com.ua","No entries found"),
array("com.ua","whois.com.ua","No entries found"),
array("org.ua","whois.com.ua","No entries found"),
array("net.ua","whois.com.ua","No entries found"),
array("ind.ua","whois.com.ua","No entries found"),
array("biz.ua","whois.com.ua","No entries found"),
array("co.ua","whois.com.ua","No entries found"),
array("in.ua","whois.in.ua","No records found"),
array("uk","whois.thnic.net","No match for"),
array("uk.com","whois.nomination.net","No match for"),
array("uk.net","whois.nomination.net","No match for"),
array("us","whois.nic.us","Not found"),
array("va","whois.ripe.net","No entries found"),
array("vet.br","whois.nic.br","No match"),
array("vg","whois.adamsnames.tc","is not registered"),
array("wattle.id.au","whois.aunic.net","No Data Found"),
array("web.tr","whois.nic.tr","Not found in database"),
array("ws","whois.worldsite.ws","No match for"),
array("xj.cn","whois.cnnic.net.cn","No entries found"),
array("xz.cn","whois.cnnic.net.cn","No entries found"),
array("yn.cn","whois.cnnic.net.cn","No entries found"),
array("yu","whois.ripe.net","No entries found"),
array("za","whois.frd.ac.za","No match for"),
array("zlg.br","whois.nic.br","No match"),
array("zj.cn","whois.cnnic.net.cn","No entries found")
);
if (strpos($url, ".")===false) return "\nОшибка в данных!\n";
//if ($ds==false){
$end = substr($url, strpos($url, ".") + 1);
for($i = 0; $i < count($srv); $i++) { if($srv[$i][0] == $end) { $s= $srv[$i][1]; $nf= $srv[$i][2]; break; } }
if (@ip2long($url)) {$s='whois.ripe.net'; $nf = 'No entries found'; }
//}
//else { if (strpos($ds, ".")===false) return "\nОшибка в данных!\n"; $s=$ds; }
//$url=idn($url);
if(!empty($s)) {
if ( $fp=@fsockopen($s, 43,$errno, $errstr, 5)){
fputs($fp, "$url\r\n");
$res = "";
while(!feof($fp)){ $res .=fgets($fp,128).""; }
fclose($fp);
} else {$res="Невозможно подключится к серверу. ({$errno}){$errstr}"; writelog("Timeout(?): ({$errno}){$errstr}".$url.'@'.$s,'apache');}
} else {$res="Нет данных по этому домену, администратор о возможной проблеме был только что уведомлен."; writelog('NODOMAIN: '.$url,'apache');}
$res="\n".$url.'@'.$s.":\n".$res;
// можете добавит логирования типа такого. Мне оно нафиг не надо. Я не использую.
//writelog('whois: '.$url.'@'.$s,$_SERVER["REMOTE_ADDR"]);
//return $res; // возырат результата, т.е информации домене только.
if (strpos($res,$nf)===false) $avail=false;$avail=true;
return array($res,$avail);
}
//применительно к данному случаю
if(!empty($_POST['ip'])) {
list($data,$state)=whois($_POST['ip');
// вывод ответа. echo $data;
и результата
echo $state==true ? 'Available' : 'registred';
}
?>
Воть. Один из моих первых скриптов, чуть-чуть обработанный клавишей del и / от усложнений. Даже с логированием.
кстати ноги у этого скрипта от вашего, с php.su