VB .NET - Obtendo informações a partir de um IP usando XML


 Neste artigo vou mostrar como podemos obter informações a partir de um endereço IP usando um serviço da web e usando XML.

Este é um tutorial bem simples que mostra como é fácil obter informações de um endereço IP a partir de um serviço da web usando código XML.

Vamos usar o serviço oferecido pela http://freegeoip.net

A freegeoip.net fornece uma API HTTP pública onde os desenvolvedores podem pesquisar a localização geográfica de endereços IP. Ele usa um banco de dados de endereços IP associados às cidades juntamente com outras informações relevantes, como fuso horário, latitude e longitude.

No serviço gratís você pode fazer até 15.000 consultas por hora e uma vez que este limite seja alcançado, todos os seus pedidos resultarão em HTTP 403,  até que sua cota seja desmarcada. O servidor web freegeoip é gratuito e de código aberto, então, se o limite de serviço público for um problema para você, baixe-o e execute na sua própria instância.

Assim o endereço http://freegeoip.net/xml vai retornar as informações do seu IP no formato XML conforme mostrado na figura abaixo:

Então para obter informações sobe o IP neste serviço basta usar :  "http://freegeoip.net/xml/" + seu endereço IP

Vamos então criar uma aplicação Windows Forms usando a linguagem VB .NET e usando os recursos do XML mostrar como extrair as informações retornadas por esse serviço para um IP.

Recursos Usados:

Criando o projeto Windows Forms no VS Community 2017

Abra o VS 2017 Community e crie um projeto usando a opção : Visual Basic -> Windows Classic Desktop e selecione o template Windows Forms App (.NET Framework);

Informe o nome WF_InforIP e clique em OK.

No formulário Form1.vb inclua a partir da ToolBox os controles :

Disponha os controles conforme o leiaute da figura abaixo:

Inclua uma referência ao namespace System.Xml no formulário:

Imports System.Xml

No evento Click do botão Obter informações do IP inclua o código abaixo :

  Private Sub btnInfoIP_Click(sender As Object, e As EventArgs) Handles btnInfoIP.Click
        Dim xmldoc As New XmlDocument
        Dim xmlnode As XmlNodeList
        Dim i As Integer
        Try
           xmldoc.Load("http://freegeoip.net/xml/" & txtEnderecoIP.Text)
           xmlnode = xmldoc.GetElementsByTagName("Response")
          For i = 0 To xmlnode.Count - 1
            xmlnode(i).ChildNodes.Item(0).InnerText.Trim()
            lbResultado.Items.Add("End. IP : " & xmlnode(i).ChildNodes.Item(0).InnerText.Trim())
            lbResultado.Items.Add("Cód. País : " & xmlnode(i).ChildNodes.Item(1).InnerText.Trim())
            lbResultado.Items.Add("País : " & xmlnode(i).ChildNodes.Item(2).InnerText.Trim())
            lbResultado.Items.Add("Cod. Região : " & xmlnode(i).ChildNodes.Item(3).InnerText.Trim())
            lbResultado.Items.Add("Nome Região : " & xmlnode(i).ChildNodes.Item(4).InnerText.Trim())
            lbResultado.Items.Add("Cidade : " & xmlnode(i).ChildNodes.Item(5).InnerText.Trim())
            lbResultado.Items.Add("Cep : " & xmlnode(i).ChildNodes.Item(6).InnerText.Trim())
            lbResultado.Items.Add("Time Zone : " & xmlnode(i).ChildNodes.Item(7).InnerText.Trim())
            lbResultado.Items.Add("Latitude : " & xmlnode(i).ChildNodes.Item(8).InnerText.Trim())
            lbResultado.Items.Add("Longitude : " & xmlnode(i).ChildNodes.Item(9).InnerText.Trim())
          Next
   Catch ex As Exception
          Messagebox.Show("Erro " & ex.Message)
   End Try
  End Sub

Neste código estamos obtendo o retorno do serviço no formato XML e usando os recursos do namespace System.Xml estamos lendo a informação e retornando os seus valores.

Para detalhes veja as referências dos artigos sobre XML que eu já publiquei.

Executando o projeto e informando um IP válido ao clicar no botão Obter informações do IP iremos obter:

Pegue o projeto completo aqui :  WF_InfoIP.zip

(Disse Jesus) - Eu sou a videira verdadeira, e meu Pai é o lavrador.
Toda a vara em mim, que não dá fruto, a tira; e limpa toda aquela que dá fruto, para que dê mais fruto.

João 15:1,2

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no Visual Studio ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET ?

 

Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti