php怎么获取所有根域名
-
根据标题获取所有根域名可以通过以下几种方法实现:
方法一:使用正则表达式
可以使用正则表达式来抓取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年前 -
获取所有根域名是一个常见的需求,可以通过以下几种方式来实现:
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年前 -
在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年前