Saltar al contenido

Obtener país desde IP


Sergio

Recommended Posts

publicado

Hola!

Estoy buscando la forma más sencilla posible para obtener el país según una columna que contiene IPs.

He encontrado algunas soluciones pero están más orientadas a Power BI y a mí me gustaría utilizar Power Query desde Excel.

Gracias!

publicado

Que tal @sergio, encontré una forma utilizando una API, en su formato gratuito te permite realizar 10,000 consultas al mes.

Bueno esto va así:

Entras y te registras en esta pagina https://ipstack.com, cuando te registres te enviara a un Dashboard aqui lo importante es el Access Key.

En Power Query donde tienes las consultas con las IPs debes crear una consulta en blanco.

image.thumb.png.9cc934a50614dd8822219fc04f089cb3.png

En esa consulta y desde el editor avanzado vas a pegar el siguiente código:

let
    Source = (#"IP Address" as text) => let
        Source = Json.Document(Web.Contents("http://api.ipstack.com/" & #"IP Address"&"?access_key=@@@@@@@@@")),
        #"Converted to Table" = Record.ToTable(Source),
        #"Transposed Table" = Table.Transpose(#"Converted to Table"),
        #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table")
    in
        #"Promoted Headers"
in
    Source

En esta linea 

Source = Json.Document(Web.Contents("http://api.ipstack.com/" & #"IP Address"&"?access_key=@@@@@@@@@")),

Vas a reemplazar los "@" por el Access Key que te proporciono la pagina, quedando algo así:

Source = Json.Document(Web.Contents("http://api.ipstack.com/" & #"IP Address"&"?access_key=e6aas388bfa844fc8be50d51000163e")),
 

Click en listo y esta se guarda como una función, de hecho podrías "invocar" la función con el botón colocar una IP y te devolverá los datos.

Ahora para utilizarla en tu tabla de IPs solo debes agregar una Columna Personalizada y colocar la formula:

Consulta1([Ip])

Mi función se llama "consulta1" y mi campo en la tabla donde tengo los IPs se llama "Ip"

Y eso seria todo, solo es cuestión de expandir la tabla y seleccionar la información de tu gusto.

image.thumb.png.c71023f6e188f1e470ebc1c185753253.png

Espero te sea de ayuda.

Comentas, saludos.

publicado

Muchas gracias!

El tutorial que muestras lo encontré esta tarde, pero no sabía como utilizarlo correctamente...

De hecho, tras seguir los pasos que enumeras, me aparece el error:

Formula.Firewall: Consulta 'Transacciones' (paso 'Personalizada agregada1') references other queries or steps, so it may not directly access a data source. Please rebuild this data combination.

publicado

Sobre el error en mi caso no tuve ningún problema ...

Me encontré esto en Internet https://www.excelguru.ca/blog/2015/03/11/power-query-errors-please-rebuild-this-data-combination/ , no lo leí al detalle pero parece un  error al combinar una consulta local con una externa.

Voy a dejar el archivo donde realice la prueba, tal vez te funcione.

Saludos.

 

publicado

He hecho alguna prueba con tu archivo. Funciona correctamente, pero cuando le pongo todas las ips del archivo (unas 9.500) muestra el error.

publicado

Acabo de hacer unas pruebas con unas 9000 IPs y no me dio error, lo pare cuando llevaba unas 1700 filas ya que el proceso es muy lento para mi paciencia, no tengo idea que puede estar pasando.

Tal vez buscar alguna API similar, esa era para power bi pero funciono bien en power query por lo pienso que tal vez buscando algo similar...

Otra posibilidad es con una tabla auxiliar, pero investigue un poco y es algo complejo pero no imposible aquí alguien realizo una plantilla https://www.someka.net/excel-template/ip-to-country-converter/ aunque esta si hay que pagarla.

 

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.