ammario / ipisp

Query IP address network information in Go
MIT License
66 stars 13 forks source link

[fix] empty responses when lookup multiple IPs #20

Closed Fs02 closed 4 years ago

Fs02 commented 4 years ago

This PR fixes empty response when trying to lookup multiple IPs using DNS client:

code:

    const host = "github.com"
    ips, err := net.LookupIP(host)
    if err != nil {
        log.Fatalf("Failed to ip: %v", err)
    }
    fmt.Println(ips)

    client, err := ipisp.NewDNSClient()
    if err != nil {
        log.Fatalf("Failed to create client: %v", err)
    }
    defer client.Close()

    resp, err := client.LookupIPs(ips)
    if err != nil {
        log.Fatalf("Error looking up 4.2.2.2: %v", err)
    }
    jsonres, err := json.Marshal(resp)
    fmt.Println(string(jsonres))

result:

[
    {
        "AllocatedAt": "0001-01-01T00:00:00Z",
        "ASN": 0,
        "Country": "",
        "IP": "",
        "Name": {
            "Long": "",
            "Raw": "",
            "Short": ""
        },
        "Range": null,
        "Registry": ""
    },
    {
        "AllocatedAt": "2016-08-09T00:00:00Z",
        "ASN": 16509,
        "Country": "US",
        "IP": "13.229.188.59",
        "Name": {
            "Long": "AMAZON-02, US",
            "Raw": "AMAZON-02, US",
            "Short": "AMAZON-02, US"
        },
        "Range": {
            "IP": "13.228.0.0",
            "Mask": "//4AAA=="
        },
        "Registry": "ARIN"
    }
]
ammario commented 4 years ago

Thanks for the contribution!