Click here to Skip to main content
15,912,504 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
hi experts

i am wishing to know the people's geographic location who are visiting my website. To know the geographic location some friends suggested below links.
http://npdoty.name/location/#developer[^]
http://dev.w3.org/geo/api/spec-source.html#position[^]
http://ipinfodb.com/index.php[^]
But i can't understand how to consume those services to my site. If you know that could you please advise.

thanks in advance...
Posted
Comments
Herman<T>.Instance 23-Jul-12 6:51am    
what have you tried?

1 solution

C#
public static GeoPlugin FindMoreIpDetails(String IPAddress)
        {


            String httpCall = "http://www.geoplugin.net/asp.gp?ip=" + IPAddress;
            HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(httpCall);
            HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();

            Encoding enc = System.Text.Encoding.GetEncoding(1252);
            StreamReader loResponseStream = new StreamReader(WebResp.GetResponseStream(), enc);

            GeoPlugin plugin = new GeoPlugin();
            plugin.ReceivedResponse = loResponseStream.ReadToEnd();
            String[] inParts = plugin.ReceivedResponse.Split('\"');
            // now the ODD numbers in inParts[x] is the wanted data
            if (inParts.Length.Equals(29)) // there should be 29 parts
            {
                Double result = 0;
                Int32 regionCode = 0;
                plugin.City = inParts[1];
                plugin.Region = inParts[3]; // and so on till InParts[27]
                plugin.AreaCode = inParts[5];
                plugin.DmaCode = inParts[7];
                plugin.CountryCode = inParts[9];
                plugin.CountryName = inParts[11];
                plugin.ContinentCode = inParts[13];
                plugin.Lattitude = Double.TryParse(inParts[15], NumberStyles.Float, CultureInfo.GetCultureInfo("EN-us"), out result) ? result : 0;
                plugin.Longitude = Double.TryParse(inParts[17], NumberStyles.Float, CultureInfo.GetCultureInfo("EN-us"), out result) ? result : 0;
                plugin.RegionCode = Int32.TryParse(inParts[19], out regionCode) ? regionCode : 0;
                plugin.RegionName = inParts[21];
                plugin.CurrencyCode = inParts[23];
                plugin.CurrencySymbol = inParts[25];
                plugin.CurrencyConverter = Double.TryParse(inParts[27], NumberStyles.Float, CultureInfo.GetCultureInfo("EN-us"), out result) ? result : 0;
                            }
            loResponseStream.Close();
            WebResp.Close();

            return plugin;
        }

public class GeoPlugin
    {
        /*
         * Known Response:
         * geoplugin_city=@0"Apeldoorn"@1geoplugin_region=@2"Gelderland"@3geoplugin_areaCode=@4"0"@5geoplugin_dmaCode=@6"0"
         * @7geoplugin_countryCode=@8"NL"@9geoplugin_countryName=@10"Netherlands"@11geoplugin_continentCode=@12"EU"
         * @13geoplugin_latitude=@14"52.216701507568"@15geoplugin_longitude=@16"5.9667000770569"
         * @17geoplugin_regionCode=@18"03"@19geoplugin_regionName=@20"Gelderland"@21geoplugin_currencyCode=@22"EUR"
         * @23geoplugin_currencySymbol=@24"€"@25geoplugin_currencyConverter=@26"0.6913855239"@27
         */
        public String City;
        public String Region;
        public String AreaCode;
        public String DmaCode;
        public String CountryCode;
        public String CountryName;
        public String ContinentCode;
        public Double Lattitude;
        public Double Longitude;
        public int RegionCode;
        public String RegionName;
        public String CurrencyCode;
        public String CurrencySymbol;
        public Double CurrencyConverter;
        public String ReceivedResponse;

    }
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900