当前位置:编程学习 > php >>

请问如何用php检查dns txt记录?

请问如何用php检查dns txt记录?

I create a function to compare a txt record...

but only in my home this not work... At my job this work...

Any tip?

Obs:

The TXT record is created 48 hours left
I Already clear/flush my dns cache!

_checkTxtRecord("iocheck","yizuotu.net","123456");  

function _checkTxtRecord($txt_recort,$domain,$compare)
{
    if(checkdnsrr("$txt_recort.$domain","TXT"))
    {
        $result = dns_get_record("$txt_recort.$domain",DNS_TXT);

        if(isset($result[0]["txt"]) && $result[0]["txt"]==$compare)
        {
            return true;
        }

    }
    return false;
}
PHP dns_get_record() 函数

实例
获取与"www.zzzyk.com"关联的MX资源记录:

<?php
print_r(dns_get_record("www.zzzyk.com", DNS_MX));
?>

定义和用法
dns_get_record() 函数获取与指定主机名关联的 DNS 资源记录。

语法
dns_get_record(hostname, type, authns, addtl, raw)
参数值
参数 描述
hostname 必需。指定主机名(如"www.w3ccoo.com")
type 可选。指定要搜索的资源记录类型。 可以是以下之一:
DNS_A
DNS_CNAME
DNS_HINFO
DNS_CAA
DNS_MX
DNS_NS
DNS_PTR
DNS_SOA
DNS_TXT
DNS_AAAA
DNS_SRV
DNS_NAPTR
DNS_A6
DNS_ALL
DNS_ANY (默认)
authns 可选。通过引用传递,如果设置,它将填充权威名称服务器的资源记录
addtl 可选。 通过引用传递,如果设置,它将填充任何附加记录
raw 可选。一个布尔值。 如果设置为 TRUE,它只查询请求的类型,而不是在获取信息之前逐个类型地循环。 默认为假
技术细节
返回值:
关联数组的数组,失败时为 FALSE。 每个数组都包含以下键(至少):

host - 主机名
class - 总是返回 IN(因为这个函数只返回 Internet 类记录)
type - 记录类型
ttl - 生存时间 "Time To Live" 这条记录的剩余时间(原始 ttl 减去自查询服务器以来经过的时间长度)
数组中的其他键取决于 type 参数。

PHP 版本: 5.0+
PHP 更新日志: PHP 7.0.16: 添加了对 DNS_CAA type 的支持。
PHP 5.4:添加了 raw 参数。
PHP 5.3:在 Windows 平台上可用。

本文实例讲述了PHP函数checkdnsrr用法。分享给大家供大家参考,具体如下:

在php.net上是这样说的:

(PHP 4, PHP 5)

checkdnsrr — Check DNS records corresponding to a given Internet host name or IP address

译文: checkdnsrr -- 根据一个给定的host name(域名)或者IP地址检查它是否有DNS记录,其实也就是检验它是否存在。

Note:  This function is now available on Windows platforms.

注意:该函数在windows平台不支持

我试了一下,果然,提示没有这个函数。

下面是一个hack的方法,这样,我们在windows上做开发时,也能看到效果了!

接下来我来介绍一下参数:

bool checkdnsrr ( string $host [, string $type = "MX" ] )

第一个参数我们就不说了,就是域名或者ip

第二个参数是解析类型,分别有:

A (Address) 记录     是指定主机名(或域名)对应的IP地址记录。
MX 记录              是指定邮件交换记录(默认)
NS 记录              是指定域名服务器的记录,指定该域名由哪个DNS来进行解析。
SOA记录              一般在辅助的dns服务器里才用到,用来指定谁是主服务器。
PTR记录              从ip指向域名的反向解析记录
CNAME记录            别名记录
AAAA记录             是一个指向IPv6的记录
A6记录               同上
SRV记录              它是DNS服务器的数据库中支持的一种资源记录的类型,一般是为Microsoft的活动目录设置时的应用。
TXT记录              文本信息
ANY记录              任何记录,所有数据类型

这个函数常被我们用于检测email是否真实存在!
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,