对域查找工具进行编码
我一直在编写一个域检查器,并且真的坚持使用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 . "
");
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的新手,但我的项目需要这个。感谢所有的帮助。
谢谢 乔
解决方案
您只需查询TLD.whois-servers.net
即可,而不是拥有每个TLD的所有WHOIS服务器。
来自Wikipedia:
Whis-servers.net提供了DNS别名 TLD WHOIS服务器的记录(CNAME) 格式为.whis-servers.net。 GNU WHOIS实用程序自动 使用whis-servers.net服务。
相关文章