[arin-tech-discuss] Converting XML to .csv format

David Huberman dhuberma at arin.net
Thu Mar 15 11:42:52 EDT 2012

Hello Luke,

1) Working with NETS:

I believe you want to look for the parentNetHandle data as the key to
connect the dots. For example, there are three NETs in our database that
contain the IP address for OrgID: ARIN.  It has netHandle NET-24-0-0-0-0 for OrgID: CMCS. It has netHandle NET-24-0-0-0-1 and is
parented by NET-24-0-0-0-0. for Customer Org: C01508994. It has a netHandle NET-24-0-0-0-2
and is parented by NET-24-0-0-0-1.

NB: the very top of the hierarchy (the blocks issued by IANA to ARIN for
issuance to our customers, like /8s in IPv4 and /12s and /23s in IPv6)
won't have parentNetHandles, so you may also want to account for that.

2) Associating POCs with NETs:

Writing about NETs, you've indicated: "I'd like to get the list of
associated POCs". I think there are two concepts that you need to know to
accomplish this goal.

- NETs can have POCs. We call them "resource POCs".  A NET can have three
kinds of resources POCs: a TechPOC, an AbusePOC, and/or a NOC POC. But all
these are optional.  In most cases, a NET will not have any resource POC.
So you should see a lot of blank POC fields.

- NETs can be registered to either a customer org handle (which look like
C01508994), or a "real" OrgID (like OrgID: CMCS for Comcast or OrgID:
CITYO-121 for the City of Rockford). The real OrgIDs all have one admin
POC, and at least one tech POC and abuse POC.  They may also have at least
one optional NOC POC.  In contrast, customer orgs do not have POCs at all.

In the easy case, a NET is registered to an OrgID, and we consider the
OrgID's POCs to be the POCs for their NETs.

For example, is registered to OrgID: PAET.  The /17 has no
resource POCs.  OrgID: PAET has an admin POC, a tech POC, and an abuse
POC.  By reference, therefore, you can say that has the
following associated POCs:
- IP43-ARIN (the admin and tech POC for OrgID: PAET); and
- ABUSE741-ARIN (the abuse POC for OrgID: PAET).

In the harder case, a NET is registered to a customer Org record.  To
associate any POCs with it, you have to go up a level of hierarchy to the
parentNetHandle, identify the OrgID the parentNetHandle is registered to,
and identify its POCs.

For example, is registered to customer org record C01508994.
To compile a list of POCs associated with, you'd go to the
parentNetHandle, NET-24-0-0-0-1, cross over to the OrgID: CMCS, and find
its POCs (NAPO-ARIN and IC161-ARIN).

So that's how ARIN views it, anyway. It's how we construct Whois query
results, in hopes of providing the most useful data possible.

I hope all that helps!


David R Huberman
Principal Technical Analyst, ARIN

On 3/15/12 11:05 AM, "Luke Miner" <lminer at gmail.com> wrote:

I am trying to convert the bulk whois data into csv format so that I can
use it in a statistical package.
For each IP address I'd like to get the list of associated POCs plus the
date of assignment. Something like:
-startAddress, endAddress, orgHandle1, registrationDate1, orgHandle2,
registrationDate2, etc.

Right now I'm importing the NET XML Elements data into Microsoft Access,
and exporting the net table as a csv file. Unfortunately, there are errors
during the import, so, for example, the POC field is empty. Also the CSV
file that I'm left with is disaggregated at the network level, with
overlapping ranges. It's not clear how to get from this to data providing
all the networks associated with a given block of IP addresses.

Any help would be most appreciated,

arin-tech-discuss mailing list
arin-tech-discuss at arin.net

More information about the arin-tech-discuss mailing list