This library provides two main features:
Parsers to read Whois records from offline bulk whois database dumps of IANA organizations (ARIN, AFRINIC, APNIC, LACNIC, and RIPE)
Crawlers to retrieve online RWhois data from ARIN Referral Whois servers. This is a partial implementation of RFC 2167 that supports both bulk crawls using the -xfer command and incremental crawls.
This library does NOT provide features to contact the REST APIs such as ARIN's Whois-RWS.
Create a new console C# project, then install the WhoisParsers NuGet package by using the Visual Studio GUI or by using this command in the Package Manager Console:
Install-Package WhoisParsers
var parser = new WhoisParser(new SectionTokenizer(), new SectionParser());
var parser = new WhoisParser(new AfrinicSectionTokenizer(), new SectionParser());
You can get the sample arin.sample.txt file from here.
var parser = new WhoisParser(new SectionTokenizer(), new SectionParser());var sections = parser.RetrieveSections(@"arin.sample.txt");foreach (var section in sections){Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "Section ID: {0}", section.Id));Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "Number of records: {0}", section.Records.Count));Console.WriteLine("---- Section Records:");Console.WriteLine(section);Console.WriteLine();}
Public functions provided by WhoisParser include:
Function | Description |
---|---|
ColumnsPerType | Retrieve a list of unique record names for each type of records in a database dump. Signature variations:
|
RetrieveSections | Retrieve parsed sections from the bulk database. Signature variations:
|
RetrieveSectionsFromString | Retrieve parsed sections from the bulk database where the database is passed in as a string. Signature variations:
|
The library contains functions to increment IPV4 and (more importantly) IPv6 IP addresses.
using Microsoft.Geolocation.Whois.Utils;...var ipv4Address = IPAddress.Parse("192.168.0.1");Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "Before: {0}, After: {1}", ipv4Address, ipv4Address.Increment()));var ipv6Address = IPAddress.Parse("2001:db8:a0b:12f0::1");Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "Before: {0}, After: {1}", ipv6Address, ipv6Address.Increment()));
The output looks like this:
Before: 192.168.0.1, After: 192.168.0.2 Before: 2001:db8:a0b:12f0::1, After: 2001:db8:a0b:12f0::2
Documentation TODO
Documentation TODO
Documentation TODO