我一直在编写域名检查程序并且真的坚持使用php。这就是我到目前为止所做的:
<?php
set_time_limit(0);
ob_start();
$domain = $_GET['domain'];
########### Extensions to be checked
$extensions = array(
'.com' => array('whois.crsnic.net','No match for'),
'.info' => array('whois.afilias.net','NOT FOUND'),
'.net' => array('whois.crsnic.net','No match for'),
'.co.uk' => array('whois.nic.uk','No match'),
'.nl' => array('whois.domain-registry.nl','not a registered domain'),
'.ca' => array('whois.cira.ca', 'AVAIL'),
'.name' => array('whois.nic.name','No match'),
'.ws' => array('whois.website.ws','No Match'),
'.be' => array('whois.ripe.net','No entries'),
'.org' => array('whois.pir.org','NOT FOUND'),
'.biz' => array('whois.biz','Not found'),
'.tv' => array('whois.nic.tv', 'No match for'),
);
###########
if(isset($domain))
{
$newdomain = str_replace(array('www.', 'http://'), NULL, $domain);
$finaldomain = str_replace($extensions, NULL, $newdomain);
if(strlen($finaldomain) > 0)
{
foreach($extensions as $extension => $who)
{
$buffer = NULL;
$sock = fsockopen($who[0], 43) or die('Error Connecting To Server:' . $server);
fputs($sock, $finaldomain.$extension . "\r\n");
while( !feof($sock) )
{
$buffer .= fgets($sock,128);
}
fclose($sock);
if(eregi($who[1], $buffer))
{
echo '<h4 class="available"><span>Available</span>' . $finaldomain. '<b>' . $extension .'</b> is Available</h4>';
}
else
{
echo '<h4 class="taken"><span>Taken</span>' . $finaldomain . '<b>' .$extension .'</b> is Taken</h4>';
}
echo '<br />';
ob_flush();
flush();
sleep(0.3);
}
}
else
{
echo 'Please enter the domain name';
}
}
?>
我遇到的问题是我不知道如何从传递的域中删除扩展名。
然后当它返回结果时,我希望他们输入的扩展名是结果列表中的第一个。
我是php的新手,但我的项目需要这个。所有帮助表示赞赏。
由于 乔
答案 0 :(得分:1)
首先,扩展名称为顶级域名(缩写为TLD)。其次,.co.uk
不是顶级域名,.uk
是。它还有其他子域,例如.org.uk
,.gov.uk
等等。
现在,要返回文件名/域名的扩展名部分,您可以使用pathinfo:
$tld = pathinfo('helloworld.co.uk', PATHINFO_EXTENSION);
echo $tld; // uk
您可能需要修改数组以删除放在那里的标题点,或者只是:
$tld = '.' . pathinfo('helloworld.co.uk', PATHINFO_EXTENSION);
$whois_server = $extensions[$tld];
答案 1 :(得分:1)
您可以只查询TLD.whois-servers.net
。
来自 Wikipedia :
whois-servers.net提供DNS别名 TLD WHOIS服务器的记录(CNAME) 形式.whois-servers.net。 GNU WHOIS实用程序自动执行 使用whois-servers.net服务。