Dotnet

Official C# client library for the ipdata API

IPData Dotnet Library

License: MIT IpData Build Status Coverage Status

ipdata.co is a fast, reliable and clean service that allows you to look up the location of an IP Address and other data.

Table of Content

Install

NuGet package install using package manager:

Install-Package IpData -Version 2.0.1

NuGet package install using .NET CLI:

dotnet add package IpData --version 2.0.1

Lookup

All usage examples you can find on samples folder.

Basic

var client = new IpDataClient("<<apiKey>>");

// Get IP data from my IP
var myIpInfo = await client.Lookup();
Console.WriteLine($"Country name for {myIpInfo.Ip} is {myIpInfo.CountryName}");

// Get IP data from IP
var ipInfo = await client.Lookup("8.8.8.8");
Console.WriteLine($"Country name for {ipInfo.Ip} is {ipInfo.CountryName}");

// Get single field from IP
var countryName = await client.Lookup("8.8.8.8", x => x.CountryName);
Console.WriteLine($"Country name for 8.8.8.8 is {countryName}");

// Get multiple fields from IP
var geolocation = await client.Lookup("8.8.8.8", x => x.Latitude, x => x.Longitude);
Console.WriteLine($"Geolocation for 8.8.8.8 is lat: {geolocation.Latitude} long: {geolocation.Longitude}");

Bulk

From ipdata.co docs:

Note that bulk lookups are only available to paid users and are currently limited to a 100 at a time. Reach out to support if you need to lookup larger batches.

var client = new IpDataClient("<<apiKey>>");

var ipInfoList = await client.Lookup(new string[] { "1.1.1.1", "2.2.2.2", "3.3.3.3" });
foreach (var ipInfo in ipInfoList)
{
    Console.WriteLine($"Country name for {ipInfo.Ip} is {ipInfo.CountryName}");
}

Carrier

var client = new IpDataClient("<<apiKey>>");

var carrierInfo = await client.Carrier("69.78.70.144");
Console.WriteLine($"Carrier name: {carrierInfo.Name}");

ASN

var client = new IpDataClient("<<apiKey>>");

var asnInfo = await client.Asn("69.78.70.144");
Console.WriteLine($"ASN name: {asnInfo.Name}");

Timezone

var client = new IpDataClient("<<apiKey>>");

var timezoneInfo = await client.TimeZone("69.78.70.144");
Console.WriteLine($"TimeZone name: {timezoneInfo.Name}");

Currency

var client = new IpDataClient("<<apiKey>>");

var currencyInfo = await client.Currency("69.78.70.144");
Console.WriteLine($"Currency name: {currencyInfo.Name}");

Threat

var client = new IpDataClient("<<apiKey>>");

var threatInfo = await client.Threat("69.78.70.144");
Console.WriteLine($"Threat is Tor: {threatInfo.IsTor}");

Contributing

Please read [CONTRIBUTING.md][CONTRIBUTING] for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use [SemVer] for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the [LICENSE.md][LICENSE] file for details

[AzureStatus]: https://dev.azure.com/alexkhildev/IpData/_apis/build/status/gated?branchName=master[IpDataLogo]: https://image.ibb.co/iDQdUS/ipdatalogo.png[SemVer]: http://semver.org/[CONTRIBUTING]: https://github.com/alexkhil/IpData/blob/master/.github/CONTRIBUTING.md[LICENSE]: https://github.com/alexkhil/IpData/blob/master/LICENSE