当读取并进一步处理任何域的 SPF 记录时,我需要使用 PHP+ Ext JS 创建简单的代码。
我找到了像 http://www.kitterman.com/spf/validate.html这样的网站 ,我可以在其中获得网站上的 SPF 记录。
但我需要在我的 PHP+JS 代码中使用此信息,我需要对其进行处理、显示和保存新的更新。
PHP JS中是否有任何命令可以让我获取SPF记录并保存它?
乌尔马斯。
当读取并进一步处理任何域的 SPF 记录时,我需要使用 PHP+ Ext JS 创建简单的代码。
我找到了像 http://www.kitterman.com/spf/validate.html这样的网站 ,我可以在其中获得网站上的 SPF 记录。
但我需要在我的 PHP+JS 代码中使用此信息,我需要对其进行处理、显示和保存新的更新。
PHP JS中是否有任何命令可以让我获取SPF记录并保存它?
乌尔马斯。
SPF 是一个 txt DNS 记录,因此只需用于dns_get_record ($hostname , DNS_TXT)
获取所有 txt 记录(它返回一个数组)并检查每个记录是否包含v=spf1
您应该考虑到 SPF 标准非常复杂,而且人们做错了很多事情。我建议您阅读更多内容,以确保您的实施涵盖了您需要的所有检查。
这是了解更多关于 SPF 的一个很好的资源: http ://www.openspf.org/SPF_Record_Syntax
这是技术文档: https ://www.rfc-editor.org/rfc/rfc4408
它不仅仅是获取域的 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
]);
}