php怎么获取所有根域名

fiy 其他 157

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    根据标题获取所有根域名可以通过以下几种方法实现:

    方法一:使用正则表达式
    可以使用正则表达式来抓取URL中的根域名。根域名通常是指顶级域名的最后两个部分,如.com、.cn等。以下是一个示例代码:

    “`php
    function getRootDomain($url) {
    $pattern = “/([a-z0-9\-]{1,63}\.){1,}([a-z\.]{2,6})$/”;
    preg_match($pattern, $url, $matches);
    return $matches[0];
    }

    $url = “http://www.example.com”;
    $rootDomain = getRootDomain($url);
    echo $rootDomain;
    “`

    方法二:使用parse_url函数
    可以使用parse_url函数解析URL,然后再从解析结果中获取根域名。以下是一个示例代码:

    “`php
    function getRootDomain($url) {
    $parsedUrl = parse_url($url);
    $hostParts = explode(‘.’, $parsedUrl[‘host’]);
    $rootDomain = $hostParts[count($hostParts)-2] . ‘.’ . end($hostParts);
    return $rootDomain;
    }

    $url = “http://www.example.com”;
    $rootDomain = getRootDomain($url);
    echo $rootDomain;
    “`

    方法三:使用自定义函数
    可以编写一个自定义函数来获取根域名。以下是一个示例代码:

    “`php
    function getRootDomain($url) {
    $host = parse_url($url, PHP_URL_HOST);
    $hostParts = explode(‘.’, $host);
    $rootDomain = $hostParts[count($hostParts)-2] . ‘.’ . end($hostParts);
    return $rootDomain;
    }

    $url = “http://www.example.com”;
    $rootDomain = getRootDomain($url);
    echo $rootDomain;
    “`

    这些方法都可以用来获取URL中的根域名。根据实际情况选择适合自己的方法来使用即可。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    获取所有根域名是一个常见的需求,可以通过以下几种方式来实现:

    1. DNS查询:
    DNS (Domain Name System) 是一个用于将域名解析为 IP 地址的系统。可以通过 DNS 查询来获取所有根域名。可以使用 DNS查询工具,如Dig,来执行这个任务。例如在命令行中使用以下命令:
    “`
    dig +short . NS
    “`
    这个命令将返回所有根域名的 Name Server。

    2. Whois 查询:
    Whois 是一个网络协议,用于获取域名的注册信息。可以使用 Whois 查询来获取所有根域名。可以使用 Whois 查询工具,如Whois Lookup,来执行这个任务。例如访问 Whois Lookup 网站(https://whoislookup.com/),然后在搜索框中输入 “.COM”,点击 “Search” 按钮,即可获取所有根域名。

    3. DNS枚举工具:
    DNS枚举工具可以通过查询 DNS 服务器来获取所有根域名。这些工具会执行各种类型的 DNS 查询,如 Zone Transfer,来获取域名信息。常用的 DNS枚举工具有DNSenum、Fierce等。

    4. 域名注册机构的域名列表:
    域名注册机构通常会维护一个列表,列出了所有可以注册的域名。可以通过查询这个列表来获取所有根域名。不同的注册机构可能会有不同的列表。例如,ICANN(互联网名称与数字地址分配机构)维护了一个名为 “Root Zone Database” 的列表,其中包含了所有顶级域名(TLD)的根域名和相关信息。

    5. 通过爬取搜索引擎的结果:
    搜索引擎蜘蛛会爬取互联网上的网页,并提取其中包含的域名信息。可以通过编写一个爬虫程序,来爬取搜索引擎的结果,并从中提取出所有根域名。这种方法需要一定的编程技能,并且需要考虑到网络爬虫的道德和法律问题。

    以上是获取所有根域名的一些常见方法和技巧,可以根据实际需求选择合适的方式来实现。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中,要获取所有根域名,可以通过以下方法实现:

    方法一:使用正则表达式匹配

    步骤一:获取域名列表

    首先,我们需要获取所有的域名列表。可以通过读取一个DNS策略文件来获得一些常用的顶级域名。一般来说,这个文件的位置是/etc/resolv.conf。我们可以使用file_get_contents()函数来读取这个文件的内容,并用正则表达式提取出所有的域名。

    “`php
    $resolvContent = file_get_contents(‘/etc/resolv.conf’);
    preg_match_all(‘/[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,}/’, $resolvContent, $matches);
    $domainList = $matches[0];
    “`

    步骤二:提取根域名

    接下来,我们需要做的是提取出根域名,即去掉顶级域名之后的部分。我们可以使用parse_url()函数来解析域名,并判断是否有顶级域名。

    “`php
    $rootDomains = array();
    foreach ($domainList as $domain) {
    $parsedUrl = parse_url($domain);
    if (isset($parsedUrl[‘host’])) {
    $rootDomain = substr($parsedUrl[‘host’], strrpos($parsedUrl[‘host’], ‘.’) + 1);
    $rootDomains[] = $rootDomain;
    }
    }
    “`

    步骤三:去除重复的根域名

    有些域名可能会出现多次,我们需要去重。

    “`php
    $rootDomains = array_unique($rootDomains);
    “`

    方法二:使用域名解析函数

    PHP的标准库提供了一些域名解析函数,我们可以使用它们来获取根域名。

    “`php
    $domainList = dns_get_record(‘example.com’, DNS_ALL);
    $rootDomains = array();
    foreach ($domainList as $record) {
    if ($record[‘type’] == ‘NS’) {
    $parsedUrl = parse_url($record[‘target’]);
    $rootDomain = substr($parsedUrl[‘host’], strrpos($parsedUrl[‘host’], ‘.’) + 1);
    $rootDomains[] = $rootDomain;
    }
    }
    $rootDomains = array_unique($rootDomains);
    “`

    方法三:使用第三方库

    除了自己实现解析函数外,还可以使用一些开源库来获取根域名,例如PHPWhois、TLDExtract等。

    以上就是获取所有根域名的方法。根据实际情况选择适合的方法进行实现。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部