Php 使用dns_获取_记录()的问题
我正在尝试用PHP制作一个工具,它将简单地列出输入域的区域文件的组件。但是,我们遇到了一个恼人的错误,对于A/AAAA/CNAME记录,它拒绝作为数组的成员打印数据Php 使用dns_获取_记录()的问题,php,dns,Php,Dns,我正在尝试用PHP制作一个工具,它将简单地列出输入域的区域文件的组件。但是,我们遇到了一个恼人的错误,对于A/AAAA/CNAME记录,它拒绝作为数组的成员打印数据 $NS = dns_get_record($url, DNS_NS); $MX = dns_get_record($url,DNS_MX); $A = dns_get_record($url,DNS_A); $AAAA = dns_get
$NS = dns_get_record($url, DNS_NS);
$MX = dns_get_record($url,DNS_MX);
$A = dns_get_record($url,DNS_A);
$AAAA = dns_get_record($url,DNS_AAAA);
$CNAME = dns_get_record($url,DNS_CNAME);
$SRV = dns_get_record($url,DNS_SRV);
$A6 = dns_get_record($url,DNS_A6);
$ALL = dns_get_record($url,DNS_ALL);
$TXT = dns_get_record($url,DNS_TXT);
//Nameservers
echo "<br/><h4>$url's NS(Name Server) records are:</h4><br/>";
//echo $nameserver;
foreach ($NS as $dump) {
echo $dump['target'], "</br>";
}
// MX Servers
echo "<br/><h4>$url's MX(Mail Exchanger) records are:</h4><br/>";
foreach ($MX as $dump) {
echo $dump['target'], "</br>";
}
//A record servers
echo "<br/><h4>$url's A records are:</h4><br/>";
$fuck = var_dump($A);
foreach ($A as $dump) {
echo $dump['target'], "</br>";
}
//AAAA Record Servers
echo "<br/><h4>$url's AAAA records are:</h4><br/>";
foreach ($AAAA as $dump) {
echo $dump['target'], "</br>";
}
//CNAME Record Servers
echo "<br/><h4>$url's CNAME records are:</h4><br/>";
foreach ($CNAME as $dump) {
echo $dump['target'], "</br>";
}
//SRV Records
echo "<br/><h4>$url's SRV records are:</h4><br/>";
foreach ($SRV as $dump) {
echo $dump['target'], "</br>";
}
//A6 Records
echo "<br/><h4>$url's A6 records are:</h4><br/>";
foreach ($A6 as $dump) {
echo $dump['target'], "</br>";
}
//TXT records
echo "<br/><h4>$url's TXT records are:</h4><br/>";
foreach ($TXT as $dump) {
echo $dump['target'], "</br>";
}
以A记录为例,当我进行VAR_转储时,它似乎显示了信息,尽管格式令人难以置信地丑陋。但是,显示的循环似乎没有任何作用。我还注意到,在这种情况下,信息丢失可能是由于其他记录拒绝显示,例如我测试了我的一个域和FTP。记录未能在此显示
$url是从$_POST['url']传递的,它的格式为example.com,没有任何http或任何前面或后面的垃圾
我如何让我的循环以一种好的方式返回完整的区域文件?我是否误解了阵列的工作原理,或者我只是做了一些很基本但很愚蠢的事情 对于没有可用目标的A记录,请检查
您只有4个基本属性可供所有人使用,因此您必须选择在哪个循环中打印什么。如果要显示所有属性,当然也可以使用双循环:
foreach ($A as $dump) {
foreach ($dump as $key => $value) {
echo "{$key}: {$value}<br>";
}
}
请参阅。如何更精确地处理打印出来的元素?这是否也可能与cname和AAAA记录的问题相同?@user3407675您可以使用双循环,就像我刚才添加的示例中一样。您也可以构建一个包含所有属性的表,但这需要更多的逻辑。现在似乎可以正确打印出来,谢谢!同样的技术可能也会让我的AAA/CNAME记录出现吗?@user3407675当然,它只会显示实际存在的内容。