【问题标题】:get Server's SPF record获取服务器的 SPF 记录
【发布时间】:2012-09-25 08:37:59
【问题描述】:

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

我找到了类似的网站 http://www.kitterman.com/spf/validate.html 我可以在哪里获得网站上的 SPF 记录。

但我需要在我的 PHP+JS 代码中使用此信息,我需要对其进行处理、显示和保存新的更新。

PHP JS 中是否有任何命令可以让我获取 SPF 记录并保存?

乌尔马斯。

【问题讨论】:

  • 为什么要在php中添加记录?

标签: php extjs dns spf


【解决方案1】:

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

【讨论】:

  • 如果有人在记录中包含;那么你需要解释它并获得该记录。对于 Google Apps,您必须获得大约 5 条记录才能获得完整的授权 IP 列表。
【解决方案2】:

您应该考虑到 SPF 标准相当复杂,而且人们做错了很多事情。我建议您阅读更多内容,以确保您的实施涵盖了您需要的所有检查。

这是了解有关 SPF 的更多信息的非常好的资源: http://www.openspf.org/SPF_Record_Syntax

这里是技术文档: https://www.rfc-editor.org/rfc/rfc4408

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

【讨论】:

    【解决方案3】:

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

    <?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
        ]);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-05-01
      • 1970-01-01
      • 2014-10-08
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 1970-01-01
      相关资源
      最近更新 更多