Solved

Deriving geographic data from an IP address

Posted on 2004-08-09
7
340 Views
Last Modified: 2010-10-05
Is there a way to determine geographic information in by parsing an IP address? How is an IP address created? Do the numbers have any significance in terms of geographic location? If there is a database that defines the different parts of an IP address, where is it?

Basically I am trying to determine the location of web users and dynamically displaying content that is local to them by analyzing thier IP address.
0
Comment
Question by:paulfryer
7 Comments
 
LVL 11

Expert Comment

by:sciber_dude
ID: 11755701
I am not sure if you can do that...

but here is some information ... http://www.private.org.il/IP2geo.html

:) SD
0
 
LVL 11

Expert Comment

by:sciber_dude
ID: 11755780
oops! I guess i have to take that back.. please scroll down to the very bottom of this page. http://www.vterrain.org/Culture/geocoding.html

:) SD
0
 
LVL 1

Expert Comment

by:johanmulder
ID: 11756945
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 1

Expert Comment

by:johanmulder
ID: 11757178
No, Im sorry for posting this link (it's linking to a commercial website).
A better way is to use the whois requests from the Ripe, Arin or Apnic Whois Databases.
For more info check out http://msv.dk/ms470.asp, which shows you a good example of the request returns.

Now the tricky part to read the needed information. In PHP it will be something like this:

<?php
$ipaddr = "212.33.23.78"; //actual IP
$fp = fsockopen("whois.ripe.net", 43, $errstr, $errno, 30);

if(!$fp)
    echo "$errno: $errstr";
else
{
    socket_set_timeout($fp, 10);
    fwrite($fp, $ipaddr);
    while (!feof($fp)){ $ipinfo .= fgets($fp); }  
}
fclose($fp);
echo nl2br($ipinfo);
?>

The results will be stored in the $ipinfo variable.
Well, i think you can try this one.
0
 
LVL 13

Accepted Solution

by:
davidlars99 earned 500 total points
ID: 11758649
of course there is, here you go http://www.geobytes.com/IpLocator.htm
you just have to pay a small fee and remmember it takes an extra bandwidth and damn much, trust me I've used it, besides everuthing it's just great!

cheers!
 dave
0
 
LVL 26

Expert Comment

by:rdcpro
ID: 11758724
I'm not sure what good the whois database is going to do...it might get you the right culture, and it might not.  For example, my IP address returns:

OrgName:    U S WEST Internet Services
OrgID:      USW
Address:    950 17th Street
Address:    Suite 1900
City:       Denver
StateProv:  CO
PostalCode: 80202
Country:    US

NetRange:   65.100.0.0 - 65.103.255.255
CIDR:       65.100.0.0/14
NetName:    USW-INTERACT99-2BLK
NetHandle:  NET-65-100-0-0-1
Parent:     NET-65-0-0-0-0
NetType:    Direct Allocation
NameServer: NS1.USWEST.NET
NameServer: NS2.DNVR.USWEST.NET
NameServer: NS3.MN.USWEST.NET
Comment:    ADDRESSES WITHIN THIS BLOCK ARE NON-PORTABLE
RegDate:    2001-01-03
Updated:    2002-08-12

TechHandle: ZU24-ARIN
TechName:   U S WEST ISOps
TechPhone:  +1-612-664-4689
TechEmail:  abuse@uswest.net

OrgAbuseHandle: QIA2-ARIN
OrgAbuseName:   Qwest IP Abuse
OrgAbusePhone:  +1-877-886-6515
OrgAbuseEmail:  abuse@qwest.net

OrgNOCHandle: QIN-ARIN
OrgNOCName:   Qwest IP NOC
OrgNOCPhone:  +1-877-886-6515
OrgNOCEmail:  support@qwestip.net

OrgTechHandle: QIA-ARIN
OrgTechName:   Qwest IP Admin
OrgTechPhone:  +1-877-886-6515
OrgTechEmail:  ipadmin@qwest.com

# ARIN WHOIS database, last updated 2004-08-08 19:10
# Enter ? for additional hints on searching ARIN's WHOIS database.

Which might tell you I'm American, but you'd know that because you searched Arin, the US DB.  If you search the Europe DB, I'll bet it's a lot less likely to indicate the correct country.  Even then, you don't know a lot about the culture settings of the local machine.  You pretty much need to use one of the commercial/semicommerical IP lookup products, if that's the way you're going to do it.

A better way is to first look if the HTTP_ACCEPT_LANGUAGE request header is set.  

Also, there are lots of BrowserCap products out there.  BrowserHawk tells me:

Language  English
LangUser  en-us
LangSystem  en-us

BrowserHawk also uses IP lookup on an in-memory DB, but maybe you don't really need that.  And I'm sure there are open source products...

The best bet is to look at a number of things.  If HTTP_ACCEPT_LANGUAGE is set, then use that.  If not, use an IP lookup...etc.

Regards,
Mike Sharp
0
 
LVL 2

Expert Comment

by:izzeddeen
ID: 11778862
According to my experience, IPs change from time to time.

So it's possible that an IP belongs to Country X this year, and next year it becomes in Country Y.

There are different online services that provide you with up to date IP geography.

http://ip-to-country.webhosting.info/ is one of those site in which you can benfit from their database in two ways:

1. Either you download their free database of IP classes and their distribution.
2. Or you subscribe to connect to their web service API to connect to them dynamically and get the IP information fresh at the run time of your site.

Hope this helps
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Removing Flash from Website 6 69
Format results with PHP 3 79
Build and evolve an interactive experience 1 96
Randomize in Owl Carousel v1.3.2 6 68
Most of the sites are being standardized with W3C Web Standards. W3C provides lot of web standard services to the web. They have the web specification, process and documentation for all the web standards. You can apply HTML, CSS and Accessibility st…
Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question