Skip navigation

GeoNetMap / DB9

Geo-location via IP Address



GeoNetMap / DB9

Geo-location via IP Address


By David Mack


I am always thinking of ways to improve the small e-commerce site I run. Two areas that I recently wanted to improve were fraud detection and shipping calculations. I thought geolocation via IP address might meet my needs, so I experimented with two geolocation products: GeoNetMap by GeoBytes and DB9 from IP2Location. Both products offer similar features, but the feature I most wanted to test was accuracy.



I tested GeoNetMap first. It s basically a database of IP address information that has been associated with a geographical region. Some of the fields available in the database are: Country Name, Region, City, Currency, Lat/Long, and Certainty. They also have a list of nearby cities associated with the city returned during the query. ZIP code data can be added, but it requires that you purchase a subscription to and integrate that database. It s not difficult; just be aware that if you want ZIP code information it s available, but not included.


The GeoNetMap database can be downloaded and imported to your local database. There is a benefit and a detriment to doing that versus using GeoBytes remote services. The benefit is that I don t have to worry about service call latency and I have complete control over the database. The detriment is I have to be mindful to update my database; otherwise, my information will be outdated and possibly inaccurate. To address that issue GeoBytes also provides a product named GeoSelect to keep your data current. The difference is, with GeoSelect you have a limited number of resolutions within a given time frame. If you are doing a lot of look-ups, the price increases. The trade-off is that the data is always up to date because you are hitting GeoByte servers. The database schema is pretty straightforward and intuitive to follow the relationships. I created the schema and imported my data within 20 minutes. The documentation was relatively easy to follow, so I knew how to query the database in short order. I was able to build a test app with which I ran about 100 IP addresses through the database; the results were fairly accurate.


I like how GeoNetMap gives you fields named Certainty and CountryCertainty . This is their degree of confidence in the accuracy of the information. I could use this information to decide to take some action, if I wanted, based on the accuracy threshold. Because the fields are separate, it also allows me to take actions on them individually. For example: One IP address I used came back with a 70% Certainty, but the CountryCertainty was 98%. This allows me to be confident that the IP address was within the US and not from a fraud threat like Nigeria. Based on that knowledge, my e-commerce site could allow the transaction to continue, but, because the Certainty wasn t high, I couldn t reliably calculate the shipping. The IP address in question was an MSN proxy server, which explained the numbers. (I ll discuss my findings about the proxy servers later.)



The other product I evaluated, DB9 from IP2Location, has much of the same functionality as GeoNetMap. IP2Location has different levels of their database. Each level has more fields available. The price is also higher for each level. I selected the DB9 version because it was comparable to GeoNetMap (with the ZIP codes database). The fields available for DB9 are From IP Address, To IP Address, ISO 3166 Country Code (2 letters; i.e., US), Country Name, Lat/Long, Zip Code, and Region.


I was able to download and install the database with no problems at all. The data is in CSV format and it s easy to create the schema. However, I had to rework my test application a bit because of the nature of the From IP Address and To IP Address fields. They are stored as DWORDs, so I had to convert any test IP address into a DWORD so I could use it for a query. I would say the accuracy was the same as GeoNetMap. There wasn t a huge difference in the data. The wording was a little different for the cities here and there, but otherwise there wasn t a huge difference. With DB9, I feel like I can lower fraud and also attempt to calculate shipping based on the ZIP code. Overall, the DB9 database is a simple flat table compared to GeoNetMap; that can be a benefit or a detriment, depending on what you are trying to accomplish.


Based on my original goals, I felt I could easily improve my fraud detection with either tool. I was able to test the check-out process with IP addresses coming from undesired locations. It was nice because I could turn off the check-out process or ask the potential buyer to call our phone number. Being able to resolve an IP address at a country level seems very reliable, and I m comfortable with using that as a tool for preventing fraud. However, I don t feel like I can use either for on-the-fly shipping quotes.


Ideally, I wanted to present the customer with a shipping cost based on their ZIP code. If I can provide some idea what shipping costs would be BEFORE checking out, it likely will cut down on cart abandonment. However, this doesn t seem feasible, because I don t feel like I can get a true end user IP address without invasive means. For this to be feasible, I need to get the true end user IP address. This may or may not be possible based on how the end user connects to the Internet. I don t want to present the potential buyer with a shipping cost that is inaccurate.


Figure 1: Automatically estimating the shipping by using the ZIP code closest to the IP address.


There s an old saying in programming: garbage in garbage out. No IP geolocation software is going to give you reliable information unless you have good IP address extraction. In other words, if you extract the IP address of an AOL proxy instead of the end user, you ll get Dulles, Virginia as the location. More than likely that is not the true location of your end user. The proxy issue is one that you need to be aware of because it will affect the accuracy of your information. There are techniques to retrieve a true IP address from a user with Java applets. This requires you to write the applet and embed it in your pages. You must make the decision if that approach is too invasive or not.


Figure 2: Filtering orders from countries with high credit card fraud based on the IP address.


I would say that GeoNetMap and DB9 both have features that customers will like. Price doesn t really favor either product, as they are basically the same. I would say that DB9 has more support on their site. They also have a binary version of their database with a .NET 2.0 API. Because of the fluid nature of IP addresses, updates are critical. IP2Location issues updates about once a month or so, whereas GeoNetMap seems to have smaller updates more often. The installation of DB9 was easier because the data is flat and relations aren t an issue. GeoNetMap has a few features that some people might like to have, such as cities that are close to the returned city. It also has more marketing information associated with each record in the database.


I rate the accuracy of both applications to be about the same. They will always be slightly different as incremental updates are made. GeoNetMap is good if you want to build marketing campaigns, especially as it has the ability to show you cities near the target city. And if you sell globally, you can show customers the prices in their native currency (this assumes you can do some conversion behind the scenes).




Web Site:

Price: US$499 for an annual subscription with updates

Pros: Accurate with valid input data, simple to install and use, good support, ZIP codes included.

Cons: No marketing data included.




Web Site:

Price: US$500

Pros: Accurate with valid input data, simple to install and use, can build marketing campaigns.

Cons: ZIP codes aren t included without separate subscription, support is not as good.


David Mack is a Senior Software Engineer for Northrop Grumman-TASC. He has 12 years of development experience. He loves classic cars and enjoys a 10 handicap on the golf course.



Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.