FAQs for IP2Location™ IP-Country-Region-City-Latitude-Longitude-ZIPCode-TimeZone-AreaCode Database [DB15]
- What is the database format?
- How do I convert a IP Address to a IP Number?
- How do I retrieve the country, region or state, city, latitude and longitude, US ZIP code, time zone, and area code data from the IP Number?
- What is the minus sign "-" in country name or country code?
- How do I use this database?
- Can I automate the database update download process?
- How do I retrieve visitor's IP address using ASP, ASP.NET, C#, VB.NET, PHP, JSP & ColdFusion?
- How do I create the SQL table?
- How do I import the database into MS-SQL/MySQL/PostgreSQL database?
- Will I receive monthly notification when the update is available?
- How many records are available in this demo version?
- Where can I test the demo version for free?
- Why do we need to update this database periodically?
- How do I perform monthly database update?
- I want to download the full version. What should I do now?
- What do I get if I purchase the full version?
- Can I resell or reuse the database in my client application?
- How do I upgrade to other package?
- How can I use the Weather Station Code to get the live weather data or forecast?
- What is the IP2Location updates schedule for year 2012-2015?
- How many countries are included in the database? What is the accuracy?
- How do I test the location using multiple IP address?
The database format is known as Comma Separated Values (CSV). All fields are separated by a comma and each individual line is a record by itself.
IP2Location is also available in binary format which works together with the IP2Location API in several programming languages.
IP address (IPV4) is divided into 4 sub-blocks. Each sub-block has a different weight number each powered by 256. IP number is being used in the database because it is more efficient to search between a range of numbers in a database.
The Beginning IP number and Ending IP Number are calculated based on the following formula:
IP Number = 16777216*w + 65536*x + 256*y + z (1)
where
IP Address = w.x.y.z
For example, if the IP address is "202.186.13.4", then its IP Number will be "3401190660", based on the formula (1).
IP Address = 202.186.13.4
So, w = 202, x = 186, y = 13 and z = 4
IP Number = 16777216*202 + 65536*186 + 256*13 + 4
= 3388997632 + 12189696 + 3328 + 4
= 3401190660
To reverse IP number to IP address,
w = int ( IP Number / 16777216 ) % 256
x = int ( IP Number / 65536 ) % 256
y = int ( IP Number / 256 ) % 256
z = int ( IP Number ) % 256
where
%
is the modulus operator and
int
returns the integer part of the division.
Example ASP Function To Convert IP Address to IP NumberFunction Dot2LongIP (ByVal DottedIP)
Dim i, pos
Dim PrevPos, num
If DottedIP = "" Then
Dot2LongIP = 0
Else
For i = 1 To 4
pos = InStr(PrevPos + 1, DottedIP, ".", 1)
If i = 4 Then
pos = Len(DottedIP) + 1
End If
num = Int(Mid(DottedIP, PrevPos + 1, pos - PrevPos - 1))
PrevPos = pos
Dot2LongIP = ((num Mod 256) * (256 ^ (4 - i))) + Dot2LongIP
Next
End If
End Function
Example PHP Function To Convert IP Address to IP Number
function Dot2LongIP ($IPaddr)
{
if ($IPaddr == "") {
return 0;
} else {
$ips = split ("\.", "$IPaddr");
return ($ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256);
}
}
Example ColdFusion Function To Convert IP Address to IP Number
function Dot2LongIP(ipAddress) { if(arguments.ipAddress EQ "") { return 0; } else { ips = ListToArray( arguments.ipAddress, "." ); return( ( 16777216 * ips[1] ) + ( 65536 * ips[2] ) + ( 256 * ips[3] ) + ips[4] ); } }
Example C# Function To Convert IP Address to IP Number
public double Dot2LongIP(string DottedIP)
{
int i;
string [] arrDec;
double num = 0;
if (DottedIP == "")
{
return 0;
}
else
{
arrDec = DottedIP.Split(".");
for(i = arrDec.Length - 1; i >= 0 ; i --)
{
num += ((int.Parse(arrDec[i])%256) * Math.Pow(256 ,(3 - i )));
}
return num;
}
}Example VB.NET Function To Convert IP Address to IP Number
Public Function Dot2LongIP(ByVal DottedIP As String) As Double
Dim arrDec() As String
Dim i As Integer
Dim intResult As Long
If DottedIP = "" then
Dot2LongIP = 0
Else
arrDec = DottedIP.Split(".")
For i = arrDec.Length - 1 To 0 Step -1
intResult = intResult + ((Int(arrDec(i)) Mod 256) * Math.Pow(256, 3 -i))
Next
Dot2LongIP = intResult
End If
End function
Example MS SQL Function To Convert IP Address to IP Number
Create FUNCTION [dbo].[Dot2LongIP]( @IP VarChar(15) )
RETURNS BigInt
AS
BEGIN
DECLARE @ipA BigInt,
@ipB Int,
@ipC Int,
@ipD Int,
@ipI BigInt
SELECT @ipA = LEFT(@ip, PATINDEX('%.%', @ip) - 1 )
SELECT @ip = RIGHT(@ip, LEN(@ip) - LEN(@ipA) - 1 )
SELECT @ipB = LEFT(@ip, PATINDEX('%.%', @ip) - 1 )
SELECT @ip = RIGHT(@ip, LEN(@ip) - LEN(@ipB) - 1 )
SELECT @ipC = LEFT(@ip, PATINDEX('%.%', @ip) - 1 )
SELECT @ip = RIGHT(@ip, LEN(@ip) - LEN(@ipC) - 1 )
SELECT @ipD = @ip
RETURN ( @ipA * 256*256*256 ) + ( @ipB * 256*256 ) + ( @ipC * 256 ) + @ipD
END
RETURN @ipI
END
Example PostgreSQL Function To Convert IP Address to IP Number
CREATE OR REPLACE FUNCTION Dot2LongIP(text) RETURNS bigint AS ' SELECT split_part($1,''.'',1)::int8*(256*256*256)+ split_part($1,''.'',2)::int8*(256*256)+ split_part($1,''.'',3)::int8*256+ split_part($1,''.'',4)::int8; ' LANGUAGE 'SQL';
Example Microsoft(r) Excel Function To Convert IP Address to IP Number
onvert IPv4 IP Address to IP Number in Decimal Integer (IPv4 IP Address is in cell A1):
=((VALUE(LEFT(A1, FIND(".", A1)-1)))*256^3)+((VALUE(MID(A1, FIND(".", A1)+1, FIND(".", A1, FIND(".", A1)+1)-FIND(".", A1)-1)))*256^2)+((VALUE(MID(A1, FIND(".", A1, FIND(".", A1)+1)+1, FIND(".", A1, FIND(".", A1, FIND(".", A1)+1)+1)-FIND(".", A1, FIND(".", A1)+1)-1)))*256)+(VALUE(RIGHT(A1, LEN(A1)-FIND(".", A1, FIND(".", A1, FIND(".", A1)+1)+1))))
Convert IP Number in Decimal Integer to IPv4 IP Address (Decimal Integer is in cell A2):
=IF(A2<>"", CONCATENATE(INT(A2/256^3), ".", INT(MOD(A2, (256^3))/(256^2)), ".", INT(MOD(MOD(A2, 256^3), 256^2)/256), ".", MOD(MOD(MOD(A2, 256^3), 256^2), 256)), "")
Firstly, convert the IP address to IP number format. Search IP-Country-Region-City-Latitude-Longitude-ZIPCode-TimeZone-AreaCode Database using IP number to match a record that has the IP Number between the Beginning IP Number and the Ending IP Number.
For example, IP Address "72.77.138.60" is "1213041212" in IP Number. It matched the following recordset in the database.
"1213041208","1213041215","US","UNITED STATES","FLORIDA","SARASOTA","27.3595","-82.5012","34230","-05:00","1","941"
The IP2Location will display the "-" in country field when the IP address range is still unallocated to any countries. It is also known as reserved IP address range.
First, import this database into your MSSQL, MS-ACCESS, PL/SQL, MYSQL or other RDMS. Use an SQL query to get the matching recordset.
Example of SQL Query (MSSQL)SELECT [COUNTRY NAME COLUMN], [REGION NAME COLUMN], [CITY NAME COLUMN], [LATITUDE COLUMN], [LONGITUDE COLUMN], [ZIP CODE COLUMN], [TIME ZONE COLUMN], [ISP COLUMN], [DOMAIN NAME COLUMN], [NETSPEED COLUMN], [IDD CODE COLUMN], [AREA CODE COLUMN], [WEATHER STATION CODE COLUMN], [WEATHER STATION NAME COLUMN], [MCC COLUMN], [MNC COLUMN], [BRAND NAME COLUMN] FROM [IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE TABLE] WHERE [SEARCH IP NO] BETWEEN [IP FROM COLUMN] AND [IP TO COLUMN]
Example of SQL Query (MYSQL)
SELECT [COUNTRY NAME COLUMN], [REGION NAME COLUMN], [CITY NAME COLUMN], [LATITUDE COLUMN], [LONGITUDE COLUMN], [ZIP CODE COLUMN], [TIME ZONE COLUMN], [ISP COLUMN], [DOMAIN NAME COLUMN], [NETSPEED COLUMN], [IDD CODE COLUMN], [AREA CODE COLUMN], [WEATHER STATION CODE COLUMN], [WEATHER STATION NAME COLUMN], [MCC COLUMN], [MNC COLUMN], [BRAND NAME COLUMN] FROM [IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE TABLE] WHERE ([IP FROM COLUMN] <= [SEARCH IP NO]) AND ([IP TO COLUMN] >= [SEARCH IP NO])
Our subscribers can automate the download process using the free command-line script written in Perl which can be downloaded from our Web site. Please visit the following Web page for more information such as command syntax.
http://www.ip2location.com/free/downloader
Since the database is being updated every month at the beginning of the month, please download the database only once a month.
ASP without Proxy detection
<%
ipaddress = Request.ServerVariables("REMOTE_ADDR")
%>
ASP with Proxy detection
<%
ipaddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if ipaddress = "" then
ipaddress = Request.ServerVariables("REMOTE_ADDR")
end if
%>
PHP without Proxy detection
<?
$ipaddress = getenv(REMOTE_ADDR);
?>
PHP with Proxy detection
<?
if (getenv(HTTP_X_FORWARDED_FOR)) {
$ipaddress = getenv(HTTP_X_FORWARDED_FOR);
} else {
$ipaddress = getenv(REMOTE_ADDR);
}
?>JSP without Proxy detection
<%
String ipaddress = request.getRemoteAddr();
%>
JSP with Proxy detection
<%
if (request.getHeader("X_FORWARDED_FOR") == null) {
String ipaddress = request.getRemoteAddr();
} else {
String ipaddress = request.getHeader("X_FORWARDED_FOR");
}
%>
ColdFusion without Proxy detection
<CFCOMPONENT> <CFSET ipaddress="#CGI.Remote_Addr#"> </CFCOMPONENT>
ColdFusion with Proxy detection
<CFCOMPONENT> <CFIF #CGI.HTTP_X_Forwarded_For# EQ ""> <CFSET ipaddress="#CGI.Remote_Addr#"> <CFELSE> <CFSET ipaddress="#CGI.HTTP_X_Forwarded_For#"> </CFIF> </CFCOMPONENT>
ASP.NET (C#) without Proxy detection
public string IpAddress()
{
return Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
}
ASP.NET (C#) with Proxy detection
public string IpAddress()
{
string strIp;
strIp = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (strIp == null)
{
strIp = Request.ServerVariables["REMOTE_ADDR"];
}
return strIp;
}
ASP.NET (VB.NET) without Proxy detection
Public Function IpAddress()
IpAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End Function
ASP.NET (VB.NET) with Proxy detection
Public Function IpAddress()
Dim strIp As String
strIp = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If strIp = "" Then
strIp = Request.ServerVariables("REMOTE_ADDR")
End If
IpAddress = strIp
End Function
MS-SQL
CREATE DATABASE ip2location GO CREATE TABLE [ip2location].[dbo].[ip2location_db15]( [ip_from] float NOT NULL, [ip_to] float NOT NULL, [country_code] nvarchar(2) NOT NULL, [country_name] nvarchar(64) NOT NULL, [region_name] nvarchar(128) NOT NULL, [city_name] nvarchar(128) NOT NULL, [latitude] float NOT NULL, [longitude] float NOT NULL, [zip_code] nvarchar(10) NOT NULL, [time_zone] nvarchar(8) NOT NULL, [idd_code] nvarchar(5) NOT NULL, [area_code] nvarchar(30) NOT NULL, ) ON [PRIMARY] GO CREATE INDEX [ip_from] ON [ip2location].[dbo].[ip2location_db15]([ip_from]) ON [PRIMARY] GO CREATE INDEX [ip_to] ON [ip2location].[dbo].[ip2location_db15]([ip_to]) ON [PRIMARY] GO
MySQL
CREATE DATABASE ip2location; USE ip2location; CREATE TABLE `ip2location_db15`( `ip_from` INT(10) UNSIGNED, `ip_to` INT(10) UNSIGNED, `country_code` CHAR(2), `country_name` VARCHAR(64), `region_name` VARCHAR(128), `city_name` VARCHAR(128), `latitude` DOUBLE, `longitude` DOUBLE, `zip_code` VARCHAR(10), `time_zone` VARCHAR(8), `idd_code` VARCHAR(5), `area_code` VARCHAR(30), INDEX `idx_ip_from` (`ip_from`), INDEX `idx_ip_to` (`ip_to`), INDEX `idx_ip_from_to` (`ip_from`, `ip_to`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
PostgreSQL
CREATE DATABASE ip2location WITH ENCODING 'UTF8'; CREATE TABLE ip2location_db15( ip_from integer(10) NOT NULL, ip_to integer(10) NOT NULL, country_code character(2) NOT NULL, country_name character varying(64) NOT NULL, region_name character varying(128) NOT NULL, city_name character varying(128) NOT NULL, latitude real NOT NULL, longitude real NOT NULL, zip_code character varying(10) NOT NULL, time_zone character varying(8) NOT NULL, idd_code character varying(5) NOT NULL, area_code character varying(30) NOT NULL, ip2location_db15_pkey PRIMARY KEY (ip_from, ip_to) );
MS-SQL
BULK INSERT ip2location_db15
FROM 'IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE.CSV'
WITH
(
FORMATFILE = 'DB15.FMT'
)
GODB15.FMT
10.0 13 1 SQLCHAR 0 1 "\"" 0 first_double_quote Latin1_General_CI_AI 2 SQLCHAR 0 20 "\",\"" 1 ip_from "" 3 SQLCHAR 0 20 "\",\"" 2 ip_to "" 4 SQLCHAR 0 2 "\",\"" 3 country_code Latin1_General_CI_AI 5 SQLCHAR 0 64 "\",\"" 4 country_name Latin1_General_CI_AI 6 SQLCHAR 0 128 "\",\"" 5 region_name Latin1_General_CI_AI 7 SQLCHAR 0 128 "\",\"" 6 city_name Latin1_General_CI_AI 8 SQLCHAR 0 20 "\",\"" 7 latitude "" 9 SQLCHAR 0 20 "\",\"" 8 longitude "" 10 SQLCHAR 0 10 "\",\"" 9 zip_code Latin1_General_CI_AI 11 SQLCHAR 0 8 "\",\"" 10 time_zone Latin1_General_CI_AI 12 SQLCHAR 0 5 "\",\"" 11 idd_code Latin1_General_CI_AI 13 SQLCHAR 0 30 "\"\r\n" 12 area_code Latin1_General_CI_AI
MySQL
LOAD DATA LOCAL INFILE 'IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE.CSV' INTO TABLE `ip2location_db15` FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;
PostgreSQL
COPY ip2location_db15 FROM 'IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE.CSV' WITH CSV QUOTE AS '"';
Yes, we will deliver the notification via email when the update is available in the download area. We usually release the update on the first day of the calendar month.
There are only 100 records in the demo version for evaluation purpose. The full version of the database has more than 6,200,000 records.
You can subscribe to any free 3rd party web-hosting that supports server-side scripting. One example is Brinkster.com. If you do not want to install this demo, you can visit our pre-installed demo at http://www.ip2location.com/demo
Ownership of IP addresses change hands from time to time. Therefore, a small percentage of IP address blocks needs to be updated every year. Our database is updated monthly to make sure it is always accurate.
You need to download the latest monthly database from our server using the subscription account and password. The database is available in complete format. Therefore, you just need to drop the old database and replace it with the new one.
Youn can purchase it form here. We will generate an unique login/password to allow you to download the database for one year after we have processed your order.
You will receive your login and password through email immediately after payment is authorized. You can use your credentials to download the database from our website at anytime. The database is in a ZIP compressed format to save your bandwidth and downloading time.
You can resell our databases provided you purchase a separate license for each client. For example, if you are a developer and purchase a license for your client, you can make whatever changes you need and deliver it to your client - provided you transfer the license to your client (as easy as notification through email). In other words, one copy cannot be sold to multiple parties. You can resell the database for whatever price you wish.
If you are an existing subscriber of IP2Location database, you can upgrade to a higher package. You just need to pay for the difference in price instead of the full amount again. The subscription period will remain unchanged based on the old subscription package. Please login and click on the upgrade button inside the customer account area.
NOTES: If your current subscription has less than 6 months left, it will be renewed first before the upgrade is performed.
The IP2Location databases supply the nearest Weather Station Codes and Names only. It does NOT provide live weather data or forecast data feed. However, it is possible to collect the weather information by using paid subscription from 3rd-party Web sites such as Weather.com. Please refer to their license agreement and contact them if you have any questions regarding XML weather data feed.
Weather.com XML Data Feed Registration (Free for Personal Use or Paid for Commercial use)
https://registration.weather.com/ursa/profile/new?
For example, if the nearest Weather Station Code for one IP address is AAXX0001 in Aruba. The following are some sample sites with custom URL to retrieve the weather information and forecast.
Sample XML Data Feed using Weather.com
http://xoap.weather.com/weather/local/AAXX0001?cc=*&dayf=1&unit=m
Web-based Weather Information from Other Sites
http://www.weather.com/outlook/travel/businesstraveler/wxdetail/AAXX0001?dayNum=7
http://www.theweathernetwork.com/index.php?product=weather&placecode=aaxx0001
http://www.intellicast.com/Global/Satellite/Infrared.aspx?location=AAXX0001&lien=8
http://weather.aol.com/main.adp?location=AAXX0001
http://weather.msn.com/tenday.aspx?wealocations=wc:AAXX0001
http://weather.yahoo.com/forecast/AAXX0001.html
The IP2Location database will be released on the 1st day of the calendar month and uploaded to the customer download area for immediate download.
| 2012 | 2013 | 2014 | 2015 |
| 1st January, 2012 | 1st January, 2013 | 1st January, 2014 | 1st January, 2015 |
| 1st February, 2012 | 1st February, 2013 | 1st February, 2014 | 1st February, 2015 |
| 1st March, 2012 | 1st March, 2013 | 1st March, 2014 | 1st March, 2015 |
| 1st April, 2012 | 1st April, 2013 | 1st April, 2014 | 1st April, 2015 |
| 1st May, 2012 | 1st May, 2013 | 1st May, 2014 | 1st May, 2015 |
| 1st June, 2012 | 1st June, 2013 | 1st June, 2014 | 1st June, 2015 |
| 1st July, 2012 | 1st July, 2013 | 1st July, 2014 | 1st July, 2015 |
| 1st August, 2012 | 1st August, 2013 | 1st August, 2014 | 1st August, 2015 |
| 1st September, 2012 | 1st September, 2013 | 1st September, 2014 | 1st September, 2015 |
| 1st October, 2012 | 1st October, 2013 | 1st October, 2014 | 1st October, 2015 |
| 1st November, 2012 | 1st November, 2013 | 1st November, 2014 | 1st November, 2015 |
| 1st December, 2012 | 1st December, 2013 | 1st December, 2014 | 1st December, 2015 |
The IP-Country database has over 99% accuracy, which is higher than any of our competitors. The small number of inaccuracy is due to the dynamic IP address allocation by large ISPs such as AOL and MSN TV. Due to the fact that AOL uses a network that routes all of the company's Internet traffic through Reston, Virginia, all IP-based geo-location services, including IP2Location, are unable to determine the state and city for people who dial into the AOL network.
| Country Name | Number of IP Address | |
| AD | ANDORRA | 34,819 |
| AE | UNITED ARAB EMIRATES | 2,590,192 |
| AF | AFGHANISTAN | 94,464 |
| AG | ANTIGUA AND BARBUDA | 44,218 |
| AI | ANGUILLA | 11,137 |
| AL | ALBANIA | 273,297 |
| AM | ARMENIA | 508,594 |
| AN | NETHERLANDS ANTILLES | 317,125 |
| AO | ANGOLA | 132,268 |
| AQ | ANTARCTICA | 4,611 |
| AR | ARGENTINA | 11,361,321 |
| AS | AMERICAN SAMOA | 5,713 |
| AT | AUSTRIA | 11,349,890 |
| AU | AUSTRALIA | 47,809,809 |
| AW | ARUBA | 56,886 |
| AX | ALAND ISLANDS | 25,393 |
| AZ | AZERBAIJAN | 369,724 |
| BA | BOSNIA AND HERZEGOVINA | 598,681 |
| BB | BARBADOS | 99,779 |
| BD | BANGLADESH | 941,096 |
| BE | BELGIUM | 11,058,494 |
| BF | BURKINA FASO | 34,232 |
| BG | BULGARIA | 3,870,168 |
| BH | BAHRAIN | 407,524 |
| BI | BURUNDI | 3,336 |
| BJ | BENIN | 41,048 |
| BM | BERMUDA | 114,367 |
| BN | BRUNEI DARUSSALAM | 191,577 |
| BO | BOLIVIA, PLURINATIONAL STATE OF | 555,696 |
| BR | BRAZIL | 42,365,316 |
| BS | BAHAMAS | 137,842 |
| BT | BHUTAN | 22,656 |
| BV | BOUVET ISLAND | 264 |
| BW | BOTSWANA | 97,240 |
| BY | BELARUS | 1,228,236 |
| BZ | BELIZE | 130,781 |
| CA | CANADA | 80,149,756 |
| CD | CONGO, THE DEMOCRATIC REPUBLIC OF THE | 23,818 |
| CF | CENTRAL AFRICAN REPUBLIC | 4,944 |
| CG | CONGO | 11,782 |
| CH | SWITZERLAND | 21,388,693 |
| CI | COTE D'IVOIRE | 135,882 |
| CK | COOK ISLANDS | 8,224 |
| CL | CHILE | 5,824,899 |
| CM | CAMEROON | 121,440 |
| CN | CHINA | 294,608,996 |
| CO | COLOMBIA | 6,274,781 |
| CR | COSTA RICA | 1,668,993 |
| CU | CUBA | 113,670 |
| CV | CAPE VERDE | 17,664 |
| CY | CYPRUS | 620,430 |
| CZ | CZECH REPUBLIC | 7,742,386 |
| DE | GERMANY | 112,809,077 |
| DJ | DJIBOUTI | 13,020 |
| DK | DENMARK | 12,176,518 |
| DM | DOMINICA | 10,267 |
| DO | DOMINICAN REPUBLIC | 580,864 |
| DZ | ALGERIA | 2,100,871 |
| EC | ECUADOR | 1,426,948 |
| EE | ESTONIA | 1,165,389 |
| EG | EGYPT | 5,820,959 |
| ER | ERITREA | 4,445 |
| ES | SPAIN | 26,801,554 |
| ET | ETHIOPIA | 16,927 |
| FI | FINLAND | 13,221,813 |
| FJ | FIJI | 138,523 |
| FK | FALKLAND ISLANDS (MALVINAS) | 1,664 |
| FM | MICRONESIA, FEDERATED STATES OF | 7,168 |
| FO | FAROE ISLANDS | 40,448 |
| FR | FRANCE | 89,689,610 |
| GA | GABON | 171,752 |
| GD | GRENADA | 21,406 |
| GE | GEORGIA | 852,655 |
| GF | FRENCH GUIANA | 2,308 |
| GG | GUERNSEY | 3,408 |
| GH | GHANA | 266,790 |
| GI | GIBRALTAR | 67,764 |
| GL | GREENLAND | 16,946 |
| GM | GAMBIA | 13,503 |
| GN | GUINEA | 5,135 |
| GP | GUADELOUPE | 7,220 |
| GQ | EQUATORIAL GUINEA | 4,176 |
| GR | GREECE | 5,540,465 |
| GS | SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS | 8 |
| GT | GUATEMALA | 500,150 |
| GU | GUAM | 187,153 |
| GW | GUINEA-BISSAU | 67,136 |
| GY | GUYANA | 41,832 |
| HK | HONG KONG | 9,858,826 |
| HM | HEARD ISLAND AND MCDONALD ISLANDS | 10 |
| HN | HONDURAS | 266,199 |
| HR | CROATIA | 1,921,929 |
| HT | HAITI | 151,040 |
| HU | HUNGARY | 4,948,143 |
| ID | INDONESIA | 13,921,313 |
| IE | IRELAND | 6,243,737 |
| IL | ISRAEL | 7,379,534 |
| IM | ISLE OF MAN | 5,728 |
| IN | INDIA | 30,715,450 |
| IO | BRITISH INDIAN OCEAN TERRITORY | 3,104 |
| IQ | IRAQ | 184,387 |
| IR | IRAN, ISLAMIC REPUBLIC OF | 4,803,085 |
| IS | ICELAND | 781,450 |
| IT | ITALY | 47,446,417 |
| JE | JERSEY | 10,826 |
| JM | JAMAICA | 261,392 |
| JO | JORDAN | 454,303 |
| JP | JAPAN | 188,281,315 |
| KE | KENYA | 1,491,183 |
| KG | KYRGYZSTAN | 165,944 |
| KH | CAMBODIA | 195,436 |
| KI | KIRIBATI | 3,072 |
| KM | COMOROS | 584 |
| KN | SAINT KITTS AND NEVIS | 41,253 |
| KP | KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF | 1,066 |
| KR | KOREA, REPUBLIC OF | 106,860,575 |
| KW | KUWAIT | 1,432,936 |
| KY | CAYMAN ISLANDS | 48,213 |
| KZ | KAZAKHSTAN | 2,021,884 |
| LA | LAO PEOPLE'S DEMOCRATIC REPUBLIC | 55,824 |
| LB | LEBANON | 455,746 |
| LC | SAINT LUCIA | 16,149 |
| LI | LIECHTENSTEIN | 77,126 |
| LK | SRI LANKA | 546,146 |
| LR | LIBERIA | 13,436 |
| LS | LESOTHO | 17,024 |
| LT | LITHUANIA | 2,215,012 |
| LU | LUXEMBOURG | 1,303,173 |
| LV | LATVIA | 1,586,541 |
| LY | LIBYAN ARAB JAMAHIRIYA | 307,841 |
| MA | MOROCCO | 1,262,774 |
| MC | MONACO | 48,011 |
| MD | MOLDOVA, REPUBLIC OF | 904,034 |
| ME | MONTENEGRO | 142,960 |
| MF | SAINT MARTIN | 6,400 |
| MG | MADAGASCAR | 59,709 |
| MH | MARSHALL ISLANDS | 3,138 |
| MK | MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF | 614,325 |
| ML | MALI | 36,988 |
| MM | MYANMAR | 24,888 |
| MN | MONGOLIA | 195,442 |
| MO | MACAO | 326,727 |
| MP | NORTHERN MARIANA ISLANDS | 14,336 |
| MQ | MARTINIQUE | 14,890 |
| MR | MAURITANIA | 34,689 |
| MS | MONTSERRAT | 2,752 |
| MT | MALTA | 525,945 |
| MU | MAURITIUS | 756,284 |
| MV | MALDIVES | 57,992 |
| MW | MALAWI | 79,552 |
| MX | MEXICO | 27,830,732 |
| MY | MALAYSIA | 5,803,129 |
| MZ | MOZAMBIQUE | 136,114 |
| NA | NAMIBIA | 167,787 |
| NC | NEW CALEDONIA | 124,904 |
| NE | NIGER | 21,975 |
| NF | NORFOLK ISLAND | 1,536 |
| NG | NIGERIA | 753,042 |
| NI | NICARAGUA | 260,854 |
| NL | NETHERLANDS | 44,444,805 |
| NO | NORWAY | 15,075,034 |
| NP | NEPAL | 479,082 |
| NR | NAURU | 8,240 |
| NU | NIUE | 4,096 |
| NZ | NEW ZEALAND | 7,087,114 |
| OM | OMAN | 350,303 |
| PA | PANAMA | 1,450,887 |
| PE | PERU | 2,191,654 |
| PF | FRENCH POLYNESIA | 41,738 |
| PG | PAPUA NEW GUINEA | 50,506 |
| PH | PHILIPPINES | 5,386,931 |
| PK | PAKISTAN | 3,027,827 |
| PL | POLAND | 17,088,674 |
| PM | SAINT PIERRE AND MIQUELON | 4,096 |
| PR | PUERTO RICO | 631,334 |
| PS | PALESTINIAN TERRITORY, OCCUPIED | 8 |
| PT | PORTUGAL | 5,694,058 |
| PW | PALAU | 5,152 |
| PY | PARAGUAY | 339,387 |
| QA | QATAR | 519,539 |
| RE | REUNION | 33,936 |
| RO | ROMANIA | 10,682,749 |
| RS | SERBIA | 2,170,703 |
| RU | RUSSIAN FEDERATION | 37,396,249 |
| RW | RWANDA | 161,312 |
| SA | SAUDI ARABIA | 3,834,593 |
| SB | SOLOMON ISLANDS | 8,730 |
| SC | SEYCHELLES | 33,530 |
| SD | SUDAN | 185,468 |
| SE | SWEDEN | 26,073,020 |
| SG | SINGAPORE | 5,196,487 |
| SI | SLOVENIA | 2,334,428 |
| SJ | SVALBARD AND JAN MAYEN | 256 |
| SK | SLOVAKIA | 2,446,374 |
| SL | SIERRA LEONE | 22,216 |
| SM | SAN MARINO | 25,721 |
| SN | SENEGAL | 290,309 |
| SO | SOMALIA | 4,095 |
| SR | SURINAME | 48,121 |
| ST | SAO TOME AND PRINCIPE | 920 |
| SV | EL SALVADOR | 452,848 |
| SY | SYRIAN ARAB REPUBLIC | 649,686 |
| SZ | SWAZILAND | 38,094 |
| TC | TURKS AND CAICOS ISLANDS | 8,518 |
| TD | CHAD | 5,156 |
| TF | FRENCH SOUTHERN TERRITORIES | 16 |
| TG | TOGO | 14,808 |
| TH | THAILAND | 7,454,957 |
| TJ | TAJIKISTAN | 55,776 |
| TK | TOKELAU | 2,152 |
| TL | TIMOR-LESTE | 5,128 |
| TM | TURKMENISTAN | 9,856 |
| TN | TUNISIA | 2,729,393 |
| TO | TONGA | 6,144 |
| TR | TURKEY | 12,422,204 |
| TT | TRINIDAD AND TOBAGO | 463,360 |
| TV | TUVALU | 8,202 |
| TW | TAIWAN | 34,136,791 |
| TZ | TANZANIA, UNITED REPUBLIC OF | 271,204 |
| UA | UKRAINE | 8,801,190 |
| UG | UGANDA | 180,273 |
| UK | UNITED KINGDOM | 230,229,765 |
| UM | UNITED STATES MINOR OUTLYING ISLANDS | 170 |
| US | UNITED STATES | 1,527,328,391 |
| UY | URUGUAY | 961,513 |
| UZ | UZBEKISTAN | 222,778 |
| VA | HOLY SEE (VATICAN CITY STATE) | 16,854 |
| VC | SAINT VINCENT AND THE GRENADINES | 25,343 |
| VE | VENEZUELA, BOLIVARIAN REPUBLIC OF | 4,714,730 |
| VG | VIRGIN ISLANDS, BRITISH | 26,326 |
| VI | VIRGIN ISLANDS, U.S. | 90,844 |
| VN | VIET NAM | 13,202,823 |
| VU | VANUATU | 13,586 |
| WF | WALLIS AND FUTUNA | 3,072 |
| WS | SAMOA | 18,490 |
| YE | YEMEN | 49,747 |
| YT | MAYOTTE | 278 |
| ZA | SOUTH AFRICA | 17,642,169 |
| ZM | ZAMBIA | 145,775 |
| ZW | ZIMBABWE | 74,759 |
Data Source: IP2Location™ IP-COUNTRY [DB1] March 2011 Edition Database
LocaProxy.com. It provides multi-location HTTP proxies to help businesses test geolocation applications. This solution reduces the total cost of testing by supplying the Distributed Infrastructure as a Service.
