Akzeptierte Antwort

Cedric
Cedric am 6 Nov. 2013
Bearbeitet: Cedric am 6 Nov. 2013

4 Stimmen

One way to do it is to use some online API for IP identification. Here is an example: save the following function into your working dir..
function country = getCountryByIP( ipv4 )
url = sprintf( 'http://www.geoplugin.net/json.gp?ip=%s', ipv4 ) ;
buf = urlread( url ) ;
country = regexp( buf, '(?<=countryName":")[^"]*', 'match', 'once' ) ;
end
You can then use it as follows in your command window (or loop over a list of IPs)..
>> getCountryByIP( '216.236.14.34' )
ans =
United States
Note that there are dozen of websites which provide APIs for doing this (geoplugin.net, whatismyip.com, ipinfodb.com, hostip.info, etc) and you might find one which accepts a list of IPs as input and outputs a list of countries.
These APIs set a limit on the number of queries that you can send/get per second, and some are free only for a limited number of queries per hour or per day. Also, sending a query and getting the return from the server takes time (could take a few seconds). If you had millions of IPs to look up, using an API would therefore not be the best option, and you should rather implement a solution based on a local database of IPs/countries (e.g. hostip.info rsync).

Weitere Antworten (1)

Chris Williams
Chris Williams am 6 Nov. 2013

0 Stimmen

Great, thanks for your help. The local database looks the way to go.

Kategorien

Mehr zu MATLAB Compiler finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by