using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Subgurim.Controles;
namespace GEO_Location
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string BaseDeDados = Server.MapPath("~/GEO/GeoLiteCity.dat");
LookupService geoLocation = new LookupService(BaseDeDados);
//Com esta linha descomentada, funcionará somente on-line
Location Local = geoLocation.getLocation(Request.ServerVariables["REMOTE_ADDR"]);
//Para teste local, basta comentar a linha acima,
//inserir o seu IP no parâmetro abaixo e descomentar a linha
//Location localizacao = servico.getLocation("SEU IP AQUI");
if (Local != null)
{
Response.Write("Cidade: " + Local.city + "<br />");
Response.Write("País: " + Local.countryName + "<br />");
Response.Write("Código do País: " + Local.countryCode + "<br />");
Response.Write("Região: " + Local.region + "<br />");
Response.Write("Código da Área: " + Local.area_code + "<br />");
Response.Write("Latitude: " + Local.latitude + "<br />");
Response.Write("Longitudade: " + Local.longitude + "<br />");
//Gerando o mapa da localização
Response.Write(
String.Format("<img src=\"http://maps.google.com/staticmap?center={0},{1}&zoom=12&size=512x512&key=AIzaSyAOwOQ3wVuZJucddCYB-pVe_F_0JECU6Mo\">",
Local.latitude,
Local.longitude)
);
}
else
{
Response.Write("NULL");
}
}
}
}
Uma observação importante é que se você estiver testando localmente, não terá resultado se o Request.ServerVariables["REMOTE_ADDR"] estiver passando REMOTE_ADDR como parâmetro.
Para funcionar local, basta por um IP válido entre aspas dentro dos colchetes.
Exemplo do código funcionando:
Créditos
Saulo Pacífico
www.sgpdesign.com.br
www.facebook.com/SauloPacifico
www.twitter.com/saulopacifico
Links para o site da API, download da dll e download da dados de base de IP'S
Site da API
Download da dll
Download da base de dados de IP'S (Atualizado periodicamente)
Download do projeto completo