Sample code for 30+ languages & platforms
Go

AbuseIPDB Check Endpoint

See more _Miscellaneous_ Examples

The check endpoint accepts a single IP address (v4 or v6). Optionally you may set the maxAgeInDays parameter to only return reports within the last x amount of days.

Chilkat Go Downloads

Go
    success := false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    http := chilkat.NewHttp()

    // Implements the following CURL command:

    // curl -G https://api.abuseipdb.com/api/v2/check \
    //   --data-urlencode "ipAddress=118.25.6.39" \
    //   -d maxAgeInDays=90 \
    //   -d verbose \
    //   -H "Key: $YOUR_API_KEY" \
    //   -H "Accept: application/json"

    // Use the following online tool to generate HTTP code from a CURL command
    // Convert a cURL Command to HTTP Source Code

    req := chilkat.NewHttpRequest()
    req.SetHttpVerb("GET")
    req.SetPath("/api/v2/check")
    req.SetContentType("application/x-www-form-urlencoded")
    req.AddParam("maxAgeInDays","90")
    req.AddParam("verbose","")
    req.AddParam("ipAddress","118.25.6.39")

    req.AddHeader("Key","$YOUR_API_KEY")
    req.AddHeader("Accept","application/json")

    resp := chilkat.NewHttpResponse()
    success = http.HttpSReq("api.abuseipdb.com",443,true,req,resp)
    if success == false {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        req.DisposeHttpRequest()
        resp.DisposeHttpResponse()
        return
    }

    jResp := chilkat.NewJsonObject()
    jResp.Load(resp.BodyStr())
    jResp.SetEmitCompact(false)

    fmt.Println("Response Body:")
    fmt.Println(*jResp.Emit())

    respStatusCode := resp.StatusCode()
    fmt.Println("Response Status Code = ", respStatusCode)
    if respStatusCode >= 400 {
        fmt.Println("Response Header:")
        fmt.Println(resp.Header())
        fmt.Println("Failed.")
        http.DisposeHttp()
        req.DisposeHttpRequest()
        resp.DisposeHttpResponse()
        jResp.DisposeJsonObject()
        return
    }

    // Sample JSON response:
    // (Sample code for parsing the JSON response is shown below)

    // {
    //   "data": {
    //     "ipAddress": "118.25.6.39",
    //     "isPublic": true,
    //     "ipVersion": 4,
    //     "isWhitelisted": false,
    //     "abuseConfidenceScore": 1,
    //     "countryCode": "CN",
    //     "usageType": "Data Center\/Web Hosting\/Transit",
    //     "isp": "Tencent Cloud Computing (Beijing) Co. Ltd",
    //     "domain": "tencent.com",
    //     "hostnames": [
    //     ],
    //     "countryName": "China",
    //     "totalReports": 2,
    //     "numDistinctUsers": 1,
    //     "lastReportedAt": "2021-04-03T18:55:00+00:00",
    //     "reports": [
    //       {
    //         "reportedAt": "2021-03-10T10:07:53+00:00",
    //         "comment": "SSH login attempts with user root.",
    //         "categories": [
    //           18,
    //           22
    //         ],
    //         "reporterId": 54484,
    //         "reporterCountryCode": "CN",
    //         "reporterCountryName": "China"
    //       },
    //       {
    //         "reportedAt": "2021-03-09T09:47:57+00:00",
    //         "comment": "SSH login attempts with user root.",
    //         "categories": [
    //           18,
    //           22
    //         ],
    //         "reporterId": 54484,
    //         "reporterCountryCode": "CN",
    //         "reporterCountryName": "China"
    //       }
    //     ]
    //   }
    // }

    // Sample code for parsing the JSON response...
    // Use the following online tool to generate parsing code from sample JSON:
    // Generate Parsing Code from JSON

    var reportedAt *string = new(string)
    var comment *string = new(string)
    var reporterId int
    var reporterCountryCode *string = new(string)
    var reporterCountryName *string = new(string)
    var j int
    var count_j int
    var intVal int

    dataIpAddress := jResp.StringOf("data.ipAddress")
    dataIsPublic := jResp.BoolOf("data.isPublic")
    dataIpVersion := jResp.IntOf("data.ipVersion")
    dataIsWhitelisted := jResp.BoolOf("data.isWhitelisted")
    dataAbuseConfidenceScore := jResp.IntOf("data.abuseConfidenceScore")
    dataCountryCode := jResp.StringOf("data.countryCode")
    dataUsageType := jResp.StringOf("data.usageType")
    dataIsp := jResp.StringOf("data.isp")
    dataDomain := jResp.StringOf("data.domain")
    dataCountryName := jResp.StringOf("data.countryName")
    dataTotalReports := jResp.IntOf("data.totalReports")
    dataNumDistinctUsers := jResp.IntOf("data.numDistinctUsers")
    dataLastReportedAt := jResp.StringOf("data.lastReportedAt")
    i := 0
    count_i := jResp.SizeOfArray("data.hostnames")
    for i < count_i {
        jResp.SetI(i)
        i = i + 1
    }

    i = 0
    count_i = jResp.SizeOfArray("data.reports")
    for i < count_i {
        jResp.SetI(i)
        reportedAt = jResp.StringOf("data.reports[i].reportedAt")
        comment = jResp.StringOf("data.reports[i].comment")
        reporterId = jResp.IntOf("data.reports[i].reporterId")
        reporterCountryCode = jResp.StringOf("data.reports[i].reporterCountryCode")
        reporterCountryName = jResp.StringOf("data.reports[i].reporterCountryName")
        j = 0
        count_j = jResp.SizeOfArray("data.reports[i].categories")
        for j < count_j {
            jResp.SetJ(j)
            intVal = jResp.IntOf("data.reports[i].categories[j]")
            j = j + 1
        }

        i = i + 1
    }


    http.DisposeHttp()
    req.DisposeHttpRequest()
    resp.DisposeHttpResponse()
    jResp.DisposeJsonObject()