IP 2 Location
Background
There are several techniques I can use to determine your geographical location,
but the most accurate is an IP to Geo map. This web server inspects your IP
address and invokes a C# call into a highly structured data file to lookup your
geographical location. This method is several orders of magnitude faster than
even the fastest database queries due to the low overhead.
When determining a client's IP address, there are three possible values that are
located in each HTTP Host Header. Ideally they would all be the same but
browsers, firewalls, NAT's, and proxy servers can modify Host Headers. I wrote
a special function that determines the header that will produce the most
accurate results. Accuracy is better than 97%.
Your IP and Geographical Location
You are located in United States | I used IP address 38.103.63.62 | Your Host Headers HTTP-X-FORWARDED-FOR = HTTP-CLIENT-IP = REMOTE-ADDR = 38.103.63.62 |
SOAP XML compliant Web Service
I also provide a publically available Web Service
to convert from IP to Geo location.
Future Enhancements
I plan on including city/state/region information. This is a more difficult
problem because ISPs route client traffic thru their datacenter. This means
that if your ISP's datacenter is in Houston, Texas but you live in a nearby
suburb like Katy, League City or Pasadena, then it will incorrectly appear to
me that you are in Houston.
The 24 million AOL customers are another problem. AOL funnels all traffic thru
their proxy servers in Reston, Virginia, making city and region geo mapping
impossible. Due to this and other issues, city mapping is roughly 65% accurate.
Additional Resources
IP Geo
Mapping Investigation by Microsoft Research and UC Berkeley
|