GeoIP – geolocation from IP

I was trying to capture all user traffic and their geolocation, upon experimenting I came to a understanding of this functionality and did a very simplified explanation here in case if anyone is interested…

Before getting started, basic understanding about actors in this hierarchy is vital..

IANA (Internet Assigned Numbers Authority): is a department of ICANN and American non profit organisation, responsible to oversee few internet function of which primary is the IP Address allocation.

RIR (Regional Internet registry): The whole world internet IP Address allocation is governed and managed by 5 RIRs which is geographically separated into 5 segments. among various tasks this is responsible for maintaining who is database as well. NRO is another governing group which combines this 5.. to know more simple bing or g search will provide result…

ISP (Internet service provider):  is an organization that provides services accessing and using the Internet to the ENd user. This is a very basic description, more details can be obtained by search..

Now we know the participants, lets see the flow how the IP Allocation is defined..

Step 1:  IANA through some process validate & defines possible IPs that can be used in Internet.

Step 2: Now Range of IPs are assigned to each RIRs, which is even at continent scope..

Step 3: Now the RIRs. in turn assign these IPs segment to ISP

Step 4: ISPs assign these IP Address to the consumer device.

Finally, Not all consumer IP addresses are mapped by ISPs and so the address will end up being the ISPs  address.

To my understanding, GeoLocation providers like maxmind might get thier data mostly by mining who is details… but still there may be some sources which I may not aware.. some one who can extend this or comment please do..