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('\"');
if (inParts.Length.Equals(29))
{
Double result = 0;
Int32 regionCode = 0;
plugin.City = inParts[1];
plugin.Region = inParts[3];
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
{
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;
}