首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写域查找工具的代码

编写域查找工具的代码
EN

Stack Overflow用户
提问于 2011-02-16 21:03:18
回答 2查看 1.9K关注 0票数 3

我一直在编写一个域检查程序,并且真的坚持使用php。到目前为止,这就是我所拥有的:

代码语言:javascript
复制
<?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,但我的项目需要这个。所有的帮助都很感激。

谢谢乔

EN

回答 2

Stack Overflow用户

发布于 2011-02-16 21:42:22

首先,扩展称为顶级域(缩写TLD)。其次,.co.uk不是顶级域,.uk是。它还有其他子域,如.org.uk.gov.uk等。

现在,要返回文件名/域名的扩展名部分,可以使用帕辛弗

代码语言:javascript
复制
$tld = pathinfo('helloworld.co.uk', PATHINFO_EXTENSION);
echo $tld;   // uk

您可能需要修改数组以删除放置在其中的标题点,或者简单地:

代码语言:javascript
复制
$tld = '.' . pathinfo('helloworld.co.uk', PATHINFO_EXTENSION);
$whois_server = $extensions[$tld];
票数 1
EN

Stack Overflow用户

发布于 2011-02-16 23:27:13

您可以查询TLD.whois-servers.net,而不是为每个TLD提供所有的服务。

来自维基百科

DNS为表单的TLD WHOIS服务器提供DNS别名记录(CNAME)。GNU WHOIS实用程序自动使用whois-servers.net服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5022057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档