Php 获取服务器&x27;s SPF记录

Php 获取服务器&x27;s SPF记录,php,extjs,dns,spf,Php,Extjs,Dns,Spf,当读取和进一步处理任何域的SPF记录时,我需要用PHP+ExtJS创建简单的代码 我发现了像这样的网站 在那里我可以在网站上获得SPF记录 但是我需要在我的PHP+JS代码中包含这些信息,我需要处理它,显示并保存新的更新的代码 PHP JS中是否有任何命令可以用来获取SPF记录并保存它 Urmas.SPF是一个txt DNS记录,因此只需使用DNS_get_记录($hostname,DNS_txt)来获取所有txt记录(它返回一个数组),并检查每个记录是否包含v=spf1您应该考虑到SPF标准非

当读取和进一步处理任何域的SPF记录时,我需要用PHP+ExtJS创建简单的代码

我发现了像这样的网站 在那里我可以在网站上获得SPF记录

但是我需要在我的PHP+JS代码中包含这些信息,我需要处理它,显示并保存新的更新的代码

PHP JS中是否有任何命令可以用来获取SPF记录并保存它


Urmas.

SPF是一个txt DNS记录,因此只需使用
DNS_get_记录($hostname,DNS_txt)
来获取所有txt记录(它返回一个数组),并检查每个记录是否包含
v=spf1

您应该考虑到SPF标准非常复杂,并且有许多人会出错。我建议您多读一些,以确保您的实现涵盖了您需要的所有检查

这是了解SPF更多信息的一个非常好的资源:

以下是技术文档:


它不仅仅是获取一个域的TXT记录。对于早于5的PHP版本,可以使用
shell_exec(“dig example.com TXT@nameserver”)在基于unix的系统上。

检查此代码。这可能对某人有帮助

<?php
include("util.php");
$exists = false;
$array = dns_get_record("amazon.com", DNS_ALL);
for ($i = 0; $i <= count($array) - 1; $i++) {
    $nestedarray = $array[$i];
    for ($j = 0; $j <= count($nestedarray) - 1; $j++) {
        if (array_key_exists("txt", $nestedarray)) {
            $str = $nestedarray['txt'];
            $search = "v=spf1";
            if (preg_match("/{$search}/i", $str)) {
                echo (prepareAPIResponse("success", $str, "found"));
                $exists = true;
                break;
            }
        }
    }
}
if (!$exists) {
    echo (prepareAPIResponse("error", null, "not found"));
}

function prepareAPIResponse($status='success', $data=null, $msg=null)
{
    header('content-type: application/json');
    return json_encode([
       'status'=>$status,
       'data'=>$data,
       'message'=>$msg
    ]);
}

为什么要将记录添加到php?如果有人在记录中包含一个include;然后你需要解释它,并得到记录。在谷歌应用程序的情况下,你必须获得大约5条记录才能拥有完整的授权IP列表。