Get machine IP and location via open api private static string GetOwnPublicIP() {


      private static string GetOwnPublicIP()
      {
         try
         {
            var html = new WebClient().DownloadString( "http://checkip.dyndns.com/");
            var ipStart = html.IndexOf(": ", StringComparison.OrdinalIgnoreCase) + 2;
            return html.Substring(ipStart, html.IndexOf("</", ipStart, StringComparison.OrdinalIgnoreCase) - ipStart).Trim();
         }
         catch (System.Exception ex)
         {
            System.Diagnostics.Debug.WriteLine(ex.ToString());
            return string.Empty;
         }
      }
 public static LocationResponseData GetOwnLocation()
      {
         try
         {
            string url = string.Format("http://api.ipinfodb.com/v3/ip-city/?key={0}&ip={1}&format={2}", "1ec2f16b88b85a99145af5671fe45e641f051781843dc4dba714ccb09910e52f", GetOwnPublicIP(),"json");
            string response = WebUtilities.GethttpRequest(url);
            if (response == null)
               return null;

            return JsonUtilities.JsonToObj<LocationResponseData>(response);
         }
         catch (System.Exception ex)
         {
            System.Diagnostics.Debug.WriteLine(ex.ToString());
            return null;
         }
      }

public class LocationResponseData
{
   public string statusCode { get; set; }
   public string statusMessage { get; set; }
   public string ipAddress { get; set; }
   public string countryCode { get; set; }
   public string countryName { get; set; }
   public string regionName { get; set; }
   public string cityName { get; set; }
   public string zipCode { get; set; }
   public double latitude { get; set; }
   public double longitude { get; set; }
   public string timeZone { get; set; }
}


 

 

posted @ 2013-03-25 20:25  javawebsoa  Views(169)  Comments(0Edit  收藏  举报