gpt4 book ai didi

go - 如何在 golang 中进行 spf 记录查找和检查?

转载 作者:行者123 更新时间:2023-12-01 22:24:10 24 4
gpt4 key购买 nike

我需要进行域 spf 查找并返回 PASS/FAIL
如果失败,我需要返回 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 库:
https://github.com/miekg/dns
SPF 查找只不过是获取 TXT Records并搜索字符串 v=spf1正如你在问题中提到的那样。它也是这样做的。
您可以使用任何适合您要求的模块,并且可以对其进行更改。如果您发现您的更改也会对其他人有所帮助并且它更通用,那么您应该为特定的 git repo 提出 PR(拉取请求)与您的更改。
如果您的更改仅限于您的要求,那么您应该只使用该代码供您使用。最好使用 fork,您可以通过更改维护自己的 repo。
如果您不采取任何 fork 并且仍在使用原始项目,那么将来将很难更新特定的库。

关于go - 如何在 golang 中进行 spf 记录查找和检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61092275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com