Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
64 lines (51 sloc) 1.54 KB

获取域名的 MX 记录

另一个 DNS 请求常见的作用是获取域名的 MX 记录。MX 记录指定域名的邮件服务。MXrecords.go 工具将用 Go 履行这一任务。

MXrecords.go 工具的第一部分展示在下面的 Go 代码中:

package main

import (
    "fmt"
    "net"
    "os"
)

func main() {
    arguments := os.Args
    if len(arguments) == 1 {
        fmt.Println("Need a domain name!")
        return
    }

MXrecords.go 的第二部分包含如下 Go 代码:

    domain := arguments[1]
    MXs, err := net.LookupMX(domain)
    if err != nil {
        fmt.Println(err)
        return
    }

    for _, MX := range MXs {
        fmt.Println(MX.Host)
    }
}

MXrecords.go 的工作方式与上节的NXrecords.go类似。唯一的不同是使用 net.LookupMX() 函数替代 net.LookupNS() 函数。

执行 MXrecords.go 将产生如下输出:

$ go run MXrecords.go golang.com
aspmx.1.google.com.
alt3.aspmx.1.google.com.
alt1.aspmx.1.google.com.
alt2.aspmx.1.google.com.
$ go run MXrecords.go www.mtsoukalos.eu
lookup www.mtsoukalos.eu on 8.8.8.8:53: no such host

再次,您可以在 host(1) 工具的帮助下验证前面输出的有效性:

$ host -t mx golang.com
golang.com mail is handled by 2 alt3.aspmx.1.google.com.
golang.com mail is handled by 1 aspmx.1.google.com.
golang.com mail is handled by 2 alt1.aspmx.1.google.com.
golang.com mail is handled by 2 alt2.aspmx.1.google.com.
$ host -t mx www.mtsoukalos.eu
www.mtsoukalos.eu has no MX record
You can’t perform that action at this time.