asp.netPRO TX Text Control .NET Server - centralize your documents



Subscription Services
Print Subscription
Online-Only Subscription
Renew Subscription
asp.netNOW Newsletter
Change of Address
Pay An Invoice
Subscription Packages

asp.netPRO
Articles
411asp.net Directory
New Products
Book Reviews
Blog Listings  
E-Newsletter Articles- NEW
Events  - NEW 
Job Listings  
Product Reviews
Opinion
Back Issues
Reprints/E-prints
Search

Downloads
Premium Downloads


Informant
Contact Us
Advertise with Us
Write For Us




 
 
 


See How Your Data Grid Compares


MS SQL 2008 on ASP.NET 3.5



2007 asp.netPRO Complete Works CD
Co-Sponsored by:
Download your free trial now!

Click here for the online product directory, asp.netPRO Product Portal

Latest Features

 •

Load Balancing and Scaling Your WCF Services


 •

Got Maps?


 •

The View and the Controller


 •

Take Control


 •

Assess Your Access



Article Rating



Tell a friend
about this article!




asp:review

 

GeoNetMap / DB9

Geo-location via IP Address

 

 

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.

 

GeoNetMap

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 http://www.zip-codes.com 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.)

 

DB9

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).

 

DB9

Rating: éééé

Web Site: http://www.ip2location.com

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.

 

GeoNetMap

Rating: éééé

Web Site: http://www.geobytes.com

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.

 

 

Microsoft Internet Explorer
Top of page

TX Text Control .NET Server - centralize your documents


Informant Communications Group

Informant Communications Group, Inc.
5105 Florin Perkins Road
Sacramento, CA 95826
Phone: (916) 379-0609 • Fax: (916) 379-0610

Copyright © 2008 Informant Communications Group. All Rights Reserved. • Site Use Agreement • Send feedback to the Webmaster • Important information about privacy