Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class HomeController : Controller
- {
- public async Task<IActionResult> Index(string ip)
- {
- if (string.IsNullOrEmpty(ip))
- {
- ip = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
- }
- Datos model = await Datos.QueryGeographicalLocationAsync(ip);
- return View(model);
- }
- }
- public class Datos
- {
- [JsonProperty("ip")]
- public string IP { get; set; }
- [JsonProperty("country_code")]
- public string CountryCode { get; set; }
- [JsonProperty("country_name")]
- public string CountryName { get; set; }
- [JsonProperty("region_code")]
- public string RegionCode { get; set; }
- [JsonProperty("region_name")]
- public string RegionName { get; set; }
- [JsonProperty("city")]
- public string City { get; set; }
- [JsonProperty("zip_code")]
- public string ZipCode { get; set; }
- [JsonProperty("time_zone")]
- public string TimeZone { get; set; }
- [JsonProperty("latitude")]
- public float Latitude { get; set; }
- [JsonProperty("longitude")]
- public float Longitude { get; set; }
- [JsonProperty("metro_code")]
- public int MetroCode { get; set; }
- private Datos() { }
- public static async Task<Datos> QueryGeographicalLocationAsync(string ipAddress)
- {
- HttpClient client = new HttpClient();
- string result = await client.GetStringAsync("http://freegeoip.net/json/" + ipAddress);
- return JsonConvert.DeserializeObject<Datos>(result);
- }
- }
- @model WebAPI.Models.Datos
- @{
- ViewBag.Title = "Home Page";
- }
- <form method="get" action=".">
- type simulate
- <input type="text" name="ip" value="@Model.IP" />
- <button>submit</button>
- </form>
- <!--mce:0-->
- <table>
- <tr>
- <td>IP</td>
- <td>@Model.IP</td>
- </tr>
- <tr>
- <td>Country code</td>
- <td>@Model.CountryCode</td>
- </tr>
- <tr>
- <td>Country name</td>
- <td>@Model.CountryName</td>
- </tr>
- <tr>
- <td>Region code</td>
- <td>@Model.RegionCode</td>
- </tr>
- <tr>
- <td>Region name</td>
- <td>@Model.RegionName</td>
- </tr>
- <tr>
- <td>City</td>
- <td>@Model.City</td>
- </tr>
- <tr>
- <td>Zip code</td>
- <td>@Model.ZipCode</td>
- </tr>
- <tr>
- <td>Time zone</td>
- <td>@Model.TimeZone</td>
- </tr>
- <tr>
- <td>Latitude</td>
- <td>@Model.Latitude</td>
- </tr>
- <tr>
- <td>Longitude</td>
- <td>@Model.Longitude</td>
- </tr>
- <tr>
- <td>Metro code</td>
- <td>@Model.MetroCode</td>
- </tr>
- </table>
Add Comment
Please, Sign In to add comment