我一直在编写一个域检查程序,并且真的坚持使用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,但我的项目需要这个。所有的帮助都很感激。
谢谢乔
发布于 2011-02-16 21:42:22
首先,扩展称为顶级域(缩写TLD)。其次,.co.uk不是顶级域,.uk是。它还有其他子域,如.org.uk、.gov.uk等。
现在,要返回文件名/域名的扩展名部分,可以使用帕辛弗
$tld = pathinfo('helloworld.co.uk', PATHINFO_EXTENSION);
echo $tld; // uk您可能需要修改数组以删除放置在其中的标题点,或者简单地:
$tld = '.' . pathinfo('helloworld.co.uk', PATHINFO_EXTENSION);
$whois_server = $extensions[$tld];发布于 2011-02-16 23:27:13
您可以查询TLD.whois-servers.net,而不是为每个TLD提供所有的服务。
来自维基百科
DNS为表单的TLD WHOIS服务器提供DNS别名记录(CNAME)。GNU WHOIS实用程序自动使用whois-servers.net服务。
https://stackoverflow.com/questions/5022057
复制相似问题