Whoisabfrage, hängt sich bei .ws auf

Gray

Erfahrenes Mitglied
hier erstmal den Code:
PHP:
<?php

include "kontrolle.php";

if(isset($weiter)){

	$orginal_domain = $domain1;

        $charset = 'ISO-8859-1';
        $domain_out = idn_to_ascii($orginal_domain, $charset);
        $domain1 = $domain_out;

	$result = mysql_query("SELECT * FROM whois WHERE tld = '$tld'");

	while ($row = mysql_fetch_array($result)) {

      		$whois_server = $row[server];
      		$vergeben = $row[negativ];
      		$kk_moeglich = $row[kk_moeglich];
      		$mindestlaenge = $row[mindestlaenge];
      		$substr1 = $row[substr1];
      		$substr2 = $row[substr2];
      		$substr3 = $row[substr3];
      		$substr_meldung = $row[substr_meldung];
      		$regexp_anfang = $row[regexp_anfang];
      		$regexp_mitte = $row[regexp_mitte];
      		$regexp_ende = $row[regexp_ende];
      		$prefix = $row[prefix];

	}


$fehler = array();

	if($substr1 && $substr2 && $substr3){
		if(substr($orginal_domain, $substr1, $substr2) == $substr3){
			array_push($fehler,$substr_meldung);
		}
	}

	if($mindestlaenge){
		if($mindestlaenge > strlen($orginal_domain)){
			array_push($fehler,"Die Domain muss aus mindestens $mindestlaenge Zeichen bestehen.");
		}
	}

	if($regexp_anfang){
		if(!eregi($regexp_anfang, $orginal_domain[0])){
			array_push($fehler,"Das erste Zeichen der Domain entspricht nicht den vorraussetzungen.");
		}
	}

	if($regexp_mitte){
		if(!preg_match($regexp_mitte, $orginal_domain)){
			array_push($fehler,"Die eingegebene Domain entspricht nicht den Vorraussetzungen.");
		}
	}

	if($regexp_ende){
		if(!eregi($regexp_ende, $orginal_domain[strlen($orginal_domain)-1])){
			array_push($fehler,"Das lezte Zeichen der Domain entspricht nicht den vorraussetzungen.");
		}
	}

	if(count($fehler) == 0){

		$fp = fsockopen($whois_server,43);
		fputs($fp, "$prefix $domain1.$tld\r\n");

		while(!feof($fp)){
			$string .= fgets($fp,128);
		}

			if(eregi($vergeben,$string)){
				$erg="Die Domain $orginal_domain.$tld ist bereits vergeben.<br>"; $verg = 1;
			}else{
				$erg="Die Domain $orginal_domain.$tld ist frei.<br>"; $verg = 0;
			}

	}

}

?>
<html>
<head>
<style>

	p,input,select {font-family:Arial;font-size:13px;}

</style>
</head>
<body>
<p align=center><?php

if(count($fehler) != 0){

echo "<b>Es sind folgende Fehler aufgetreten</b><br>";

	foreach($fehler as $v) {
		echo $v."<br>";
	}

}else{
	echo $erg;
}

?></p>
<form action="whois.php" method="post">
<input type="hidden" name="session" value="<?=$session?>">
<p align=center><input type="text" name="domain1" value="<?=$orginal_domain?>"> . <select name="tld">
	<?php
		$result = mysql_query("SELECT * FROM whois WHERE aktiv = '1'");
		while ($row = mysql_fetch_array($result)) {
	?>
			<option value="<?=$row[tld]?>" <?php if($tld == $row[tld]){ print "selected"; } ?>><?=$row[tld]?></option>
	<?php } ?>
</select> <input type="submit" name="weiter" value="weiter"></p>
</form>
<p align=center><?php
if(isset($weiter)){
if($verg == 1){

	if($kk_moeglich == 1){

		echo "Dies Domain $orginal_domain.$tld übernehmen &raquo;";

	}else{

		echo "Eine Übernahme dieser Domain ist leider nicht möglich.";

	}

	// Alternative Domains
$altern = array("de","com","net","org","info","biz");
$alt_dom = array();

foreach($altern as $v) {

	$orginal_domain1 = $domain1;

	$charset = 'ISO-8859-1';
	$domain_out = idn_to_ascii($orginal_domain1, $charset);
	$domain1 = $domain_out;

	$result = mysql_query("SELECT * FROM whois WHERE tld = '$v'");

	while ($row = mysql_fetch_array($result)) {

		$whois_server = $row[server];
		$vergeben = $row[negativ];
		$kk_moeglich = $row[kk_moeglich];
		$mindestlaenge = $row[mindestlaenge];
		$substr1 = $row[substr1];
		$substr2 = $row[substr2];
		$substr3 = $row[substr3];
		$substr_meldung = $row[substr_meldung];
		$regexp_anfang = $row[regexp_anfang];
		$regexp_mitte = $row[regexp_mitte];
		$regexp_ende = $row[regexp_ende];
		$prefix = $row[prefix];

	}

$fehler = array();

	if($substr1 && $substr2 && $substr3){
		if(substr($orginal_domain1, $substr1, $substr2) == $substr3){
			array_push($fehler,"1");
		}
	}

	if($mindestlaenge){
		if($mindestlaenge1 > strlen($orginal_domain)){
			array_push($fehler,"1");
		}
	}

	if($regexp_anfang){
		if(!eregi($regexp_anfang, $orginal_domain1[0])){
			array_push($fehler,"1");
		}
	}

	if($regexp_mitte){
		if(!preg_match($regexp_mitte, $orginal_domain1)){
			array_push($fehler,"1");
		}
	}

	if($regexp_ende){
		if(!eregi($regexp_ende, $orginal_domain1[strlen($orginal_domain1)-1])){
			array_push($fehler,"1");
		}
	}

	if(count($fehler) == 0){

		$fp = fsockopen($whois_server,43);
		fputs($fp, "$prefix $domain1.$v\r\n");

		while(!feof($fp)){
			$string .= fgets($fp,128);
		}

			if(!eregi($vergeben,$string)){

				$erg="Die Domain $orginal_domain1.$v ist frei.<br>"; $verg = 0;

				array_push($alt_dom,"$orginal_domain1.$v");
			}

	}
}

if(count($alt_dom) != 0){
echo "<br><br><b>Alternative Domains.</b><br>";
foreach($alt_dom as $v) {

	echo $v." bestellen &raquo; <br>";

}
}

	//

}else{

	echo "Die Domain $orginal_domain.$tld bestellen &raquo;";

}
}

mysql_close($db);
?></p>
</body>
</html>

Das Problem ist wenn ich .ws Domains abfragen will, lädt sich das Script zu tode, hab keine ahnung woran das liegen soll, Whoisserver hab ich den gleichen wie in einem anderen funktionierenden Whoisscript.
 
Ne am Timeout kannst nicht liegen (solltes nicht)
wenn ich über die alte Abfrage das mache, geht es innerhalb von ca. 3 Sekunden, bei dieser hier warte ich ne halbe Minuten und es lädt immernoch.
 
das ist eine ganz gewöhnliche Whoisabrage,
Kunde gibt die gewünschte Domain ein und das Script schaut ob die noch frei ist, wenn nicht schlägt er alternativen vor, das an sich funktioniert auch alles einwandfrei, nur beim abfragen des ws Servers scheint es probleme zu geben.
 
Zurück