我需要进行域 spf 查找并返回“通过”/“失败” 如果失败,我需要返回 SPF 记录以进行进一步诊断
github上似乎有很多用于SPF检查的golang模块,但它们似乎都没有维护 另外,要使用的“官方”支持模块是什么
这是我的代码,请评论
package main
import (
"fmt"
"io/ioutil"
"log"
"net"
"os"
"github.com/mileusna/spf"
)
func main() {
domain := os.Args[1]
log.SetOutput(ioutil.Discard) // If I dont do this there are a lot of debug logs
ip := net.ParseIP("1.2.3.4")
r := spf.CheckHost(ip, domain, "", "")
fmt.Printf("Domain = %s\nSPF=%s", domain, r.String()) // I need to return the value ,
// How do I get the spf record
}
如果我下载 github 模块并进行源代码更改是个好主意吗??
最佳答案
您可以引用这篇文章进行 SPF 查找。
https://ashish.one/gist/spf-lookup-in-go/
在此,它使用此 DNS 库:
SPF 查找只不过是获取TXT 记录
并搜索字符串v=spf1
,正如您在问题中提到的那样。它也做同样的事情。
您可以使用任何适合您要求的模块,并且可以对其进行更改。如果您发现您的更改也对其他人有帮助并且更通用,那么您应该针对您的更改针对特定 git 存储库提出 PR(拉取请求)。
如果您的更改仅满足您的要求,那么您应该仅将该代码用于您的用途。最好采用 fork,您可以通过更改来维护自己的存储库。
如果您没有进行任何分支并仍在使用原始项目,那么将来将很难更新特定的库。
关于go - 如何在golang中进行spf记录查找和检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61092275/