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 :
1 Label
1 TextBox - txtEnderecoIP
1 Button - btnInfoIP
1 ListBox - lbResultado
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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
C# - Acessando e Lendo arquivos XML recursivamente - Macoratti.net