whois i php til .dk .com .net .org
Hej Eksperter,Jeg er ved at lave et php script som skal kunne søge på dk/com/net/org domæner og se om de er ledige og derefter skal man kunne se hvem der ejer domænet.
Det kan det også men der kommer 2 fejl når den skal søge på alle domænerne:
Fejl 1:
Warning: file() expects parameter 1 to be string, array given in topdog_whois.php on line 218.
Fejl 2:
Warning: file("") - Bad file descriptor in topdog_whois.php on line 218
Fejl nummer et kommer kun ved .com domænet, hvor derimod fejl nummer 2 kommer ved .net og .org.
Link til script http://www.hededuhu.dk/whois/whois.html
Derudover er det ikke så hurtig, det ved jeg ikke om der er noget at gøre ved?
---------
html
---------
<html>
<head>
<title>Domain søg!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form method="post" action="whois.php">
<input type="text" name="domain">
<select size="1" name="ext">
<option value="alt">Alle Domain</option>
<option value="dk">.dk</option>
<option value="com">.com</option>
<option value="net">.net</option>
<option value="org">.org</option>
</select>
<input type="hidden" name="option" value="check">
<input type="submit" value="Test Domænet!">
</form>
</body>
</html>
---------
php
---------
<?php
//com, net
$intserver="whois.crsnic.net";
$intnomatch="No match for";
//org
$orgserver="whois.publicinterestregistry.net";
$orgnomatch="NOT FOUND";
//DK
$dkserver="whois.dk-hostmaster.dk";
$dknomatch="No entries found";
$template = "whois.html";
$registerlink = "signup.php";
$restrict = 0;
if ($_SERVER['REQUEST_METHOD'] == 'GET')
{
$domain = $_GET['domain'];
$ext = $_GET['ext'];
$option = $_GET['option'];
}
else
{
$domain = $_POST['domain'];
$ext = $_POST['ext'];
$option = $_POST['option'];
}
if ($restrict ==1)
{
check_referer();
}
namecheck($domain);
if ($ext == "alt")
{
$punkt = array("dk", "com", "net", "org");
for($i=0; $i < sizeof($punkt);$i++)
{
$ext = $punkt[$i];
if($ext=="com"||$ext=="net")
{
$server=$intserver;
$nomatch=$intnomatch;
}
if($ext=="org")
{
$server=$orgserver;
$nomatch=$orgnomatch;
}
if($ext=="dk")
{
$server=$dkserver;
$nomatch=$dknomatch;
}
if($option=="check")
{
$layout = check_domain($domain,$ext);
print_results($layout);
}
if($option=="whois")
{
whois($domain,$ext);
}
}
}
else
{
if($ext=="com"||$ext=="net")
{
$server=$intserver;
$nomatch=$intnomatch;
}
if($ext=="org"){
$server=$orgserver;
$nomatch=$orgnomatch;
}
if($ext=="dk")
{
$server=$dkserver;
$nomatch=$dknomatch;
}
if($option=="check")
{
$layout = check_domain($domain,$ext);
print_results($layout);
}
if($option=="whois")
{
whois($domain,$ext);
}
}
function check_domain($domain,$ext)
{
global $nomatch,$server;
$output="";
if(($sc = fsockopen($server,43))==false){echo"Could not connect to whois server, Please try again later: $server";exit;}
fputs($sc,"$domain.$ext\n");
while(!feof($sc)){$output.=fgets($sc,128);}
fclose($sc);
if (eregi($nomatch,$output)){
return 0;
}
else
{
return 1;
}
}
function whois($domain,$ext)
{
global $template,$server;
if(($sc = fsockopen($server,43))==false)
{
if(($sc = fsockopen($server,43))==false)
{
echo 'There is a temporary service disruption, Please try again later';
exit;
}
}
if($ext=="com"||$ext=="net")
{
fputs($sc, "$domain.$ext\n");
while(!feof($sc)){
$temp = fgets($sc,128);
if(ereg("Whois Server:", $temp))
{
$server = str_replace("Whois Server: ", "", $temp);
$server = trim($server);
}
}
fclose($sc);
if(($sc = fsockopen($server,43))==false)
{
echo 'There is a temporary service disruption, Please try again later';
exit;
}
}
$output="";
fputs($sc,"$domain.$ext\n");
while(!feof($sc))
{
$output.=fgets($sc,128);
}
fclose($sc);
if(!is_file($template))
{
print 'The template file does not exist or is not writable';
exit;
}
$template = file ($template);
$numtlines = count ($template);
$line = 0;
while (! stristr ($template[$line], "<!--DOMAIN RESULTS-->") && $line < $numtlines)
{
echo $template[$line];
$line++;
}
$line++;
print '<div align=\"center\"><table width=\"100%\" border=\"0\" cellPadding=2 class=font1l>';
print "<tr><td><b>Information om domænet \"$domain.$ext\"</b></td></tr>";
print '<tr><td><hr></td></tr><br><tr><td>';
$output= explode("\n",$output);
foreach ($output as $value)
{
print "$value<br>\n";
}
print '</td></tr></table></div><br>';
while ($line < $numtlines)
{
echo $template[$line];
$line++;
}
}
function check_referer ()
{
global $REFERERS, $HTTP_REFERER;
if ($HTTP_REFERER != "")
while (list($val, $ref) = each($REFERERS))
if (preg_match("/^http:\/\/$ref/", $HTTP_REFERER))
return;
print("Access denied to: $HTTP_REFERER<br>Please try again later!");
exit;
}
function print_results($layout)
{
global $template,$registerlink,$domain,$ext;
$template = file ($template);
$numtlines = count ($template);
$line = 0;
while (!stristr ($template[$line], "<!--DOMAIN RESULTS-->") && $line < $numtlines) {
echo $template[$line];
$line++;
}
if($layout==0){
$line++;
print '<table width="100%" border="1" cellPadding="2"><tr><td><b>Domænet er ledig: ';
print $domain;
print '.';
print $ext;
print '</b></td></tr><tr><td>Vil du <a href=';
print $registerlink;
print '?domain=';
print $domain;
print '.';
print $ext;
print '>register</a> domænet ?</td></tr></table>';
}
if($layout==1)
{
$line++;
print '<table width="100%" border="1" cellPadding="2"><tr><td><b>Domænet er optaget: ';
print $domain;
print '.';
print $ext;
print '</b><br></td></tr><tr><td><b>Se domænet ejer: <a href="?domain=';
print $domain;
print '&ext=';
print $ext;
print '&option=whois">her</a></td></tr></table>';
}
while ($line < $numtlines)
{
echo $template[$line];
$line++;
}
}
function namecheck($domain)
{
if($domain=="")
{
echo"Du skal skrive noget i feltet!<br>\n"; exit;
}
if(strlen($domain)<2)
{
echo"Domænet: <b>$domain</b> er for kort (min: 2)"; exit;
}
if(strlen($domain)>57)
{
echo"Domænet: <b>$domain</b> er for langt (max: 57)"; exit;
}
if(@ereg("^-|-$",$domain))
{
echo"Der er ulovlige karaktere i domænenavnet"; exit;
}
if(!ereg("([a-z]|[A-Z]|[0-9]|-){".strlen($domain)."}",$domain))
{
echo"Der er ulovlige karaktere i domænenavnet:"; exit;
}
}
?>
