WHO IS

Ahoj, mam scriptik co jsem sosnul nekde v cizine na zjistovani dostupnosti domen a zjistil jsem ze mi to nefunguje na CZ domeny, kdyz jsem ji tam prihodil.

<?
function checkDomain($domain,$server,$findText){
$con = fsockopen($server, 43);
if (!$con) return false;
fputs($con, $domain."\r\n");
$response = ' :';
while(!feof($con)) {
$response .= fgets($con,128);
}
fclose($con);
if (strpos($response, $findText)){
return true;
}
else {
return false;
}
}
function showDomainResult($domain,$server,$findText){
if (checkDomain($domain,$server,$findText)){
echo '<tr><td>'.$domain.'</td><td class="green">DOSTUPNÁ</td></tr>';
}
else echo '<tr><td><a href="http://'.$domain.'">'.$domain.'</a></td><td class="povinnyudaj">OBSAZENÁ</td></tr>';
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="domain" id="domain">
<h3>Napište doménu:</h3>
<i>Do pole zadávejte adresu bez www. a přípony</i>
<table>
<tr><td><input class="text" name="domainname" type="text" size="36"></td></tr>
<tr>
<td>
<input type="checkbox" name="all" checked="checked"/>vše
<input type="checkbox" name="cz"/>.cz
<input type="checkbox" name="com"/>.com
<input type="checkbox" name="net"/>.net
<input type="checkbox" name="org"/>.org
<input type="checkbox" name="info"/>.info
<input class="button" type="submit" name="submitBtn" value="zjistit">
</td></tr>
</table>
</form>
<?
if (isset($_POST['submitBtn'])){
$domainbase=(isset($_POST['domainname']))?$_POST['domainname']:'';
$d_all=(isset($_POST['all']))?'all':'';
$d_cz=(isset($_POST['cz']))?'cz':'';
$d_com=(isset($_POST['com']))?'com':'';
$d_net=(isset($_POST['net']))?'net':'';
$d_org=(isset($_POST['org']))?'org':'';
$d_info=(isset($_POST['info']))?'info':'';
if (strlen($domainbase)>2){
?>
<table>
<?
if (($d_cz!="")||($d_all !="")) showDomainResult($domainbase.".cz",'whois.crsnic.net','No match for');
if (($d_com!="")||($d_all !="")) showDomainResult($domainbase.".com",'whois.crsnic.net','No match for');
if (($d_net!="")||($d_all !="")) showDomainResult($domainbase.".net",'whois.crsnic.net','No match for');
if (($d_org!="")||($d_all !="")) showDomainResult($domainbase.".org",'whois.publicinterestregistry.net','NOT FOUND');
if (($d_info!="")||($d_all !="")) showDomainResult($domainbase.".info",'whois.afilias.info','NOT FOUND');
?>
</table>
<?
}
}
?>

psal jsem na NIC.CZ proc nefunguje jejich whois.nic.cz kdyz to dam misto whois.crsnic.net. Odpovedeli mi na to, ze whois.crsnic.net neni jejich sluzba, tak se k ni nemohou vyjadrit, ale ze pry whois.nic.cz normalne funguje, takze musim mit chybu nekde ve scriptu. Myslim ale, ze jsem to tam zadal bez chyby podobne, jako je to u ostatnich domen. Nevite nekdo v cem je pls chybka a co ve scriptu mam zmenit, resp. jak ten script mam udelat, aby mi to fungovalo i na CZ domeny? V php jsem zacatecnik.
Nechci být pesimista, ale fsockopen je na wz zakázané.
mam to na placenem hostingu
a nebude to tim ze whois.nic.cz neexistuje ale je to

http://nic.cz/cgi-bin/browsing/domain?lang=cz_cz
Nebude, tahle adresa co jsi napsal je primo na overovani cz domen na jejich webu, zatimco whois.nic.cz je sluzba (mela by byt) pro overovani domen pres scripty. Opakuji, ze NIC.CZ mi v e-mailu psal ze whois.nic.cz funguje, ale ze musi byt chybne napsan script..
Mike: Tady nejde o klasicke WWW, ale o protokol WHOIS. A adresa whois.nic.cz:43 existuje a funguje.

Trosku jsem si s tim pohral a nasel duvod. Nechal jsem vypsat cely obsah vysledku ceskeho whois a ejhle problem je vyresen.

"whois.nic.cz" pri neexistenci zaznamu vraci "No data found" nikoli "No match for", proto to vzdy vracelo obsazeno.

Prepis redek na tento:

if (($d_cz!="")||($d_all !="")) showDomainResult($domainbase.".cz",'whois.nic.cz','No data found');
Dekuji ti moc, tomiku, jsem ti zavazan, ale jeste maly dotazecek kdyz uz te tu mam :o) Nevis pls jak to udelat na EU domeny? Resp. co napsat do adresy a jaky to vraci vysledek? Nebo je to vubec mozne? Slysel jsem ze domeny EU takovou sluzbu pro verejnost nemaji, ale mam dojem ze jsem to u nejake webdesignerske firmy videl..
Pro EU domeny plati "whois.eu". Takze jen pridej odpovidajici radky.

<input type="checkbox" name="eu"/>.eu
$d_eu=(isset($_POST['eu']))?'eu':'';
if (($d_eu!="")||($d_all !="")) showDomainResult($domainbase.".eu",'whois.eu','FREE');
Jeste jednou diky ;-)