Descubra seu IP

Postado por Lucio em 27 de janeiro de 2010

Que tal ter seu número IP sempre que necessário sem ter que correr para o Google para descobrir como? Que tal descobrir mais uma funcionalidade bem interessante do Visual Basic .NET? Que tal unir o útil ao agradável?

Isso caros leitores, hoje vamos aprender como criar um software que apresente nosso endereço IP com o clicar de um botão, tudo isso utilizando apenas duas classes do Framework.

Vamos às linhas de código!

1. Abra o Visual Studio e crie um novo projeto do tipo Windows Forms Application.

2. Renomeie o projeto para IPDiscover.

3. Coloque os seguintes controles em seu form:

· (3x) Label

· (2x) TextBox

· (2x) Button

4. Edite as seguintes propriedades dos controles, conforme a tabela:

CONTROLE NAME TEXT
TextBox1 txtIP1 <Em branco>
TextBox2 txtIP2 <Em branco>
Label1 lblEnderecoIP1 Endereço IP
Label2 lblEnderecoIP2 Endereço IP
Label3 lblEnunciado Descubra seu endereço IP utilizando um dos métodos abaixo. Caso um aponte o número incorreto tente o seguinte.
Button1 btnPrimeiroMetodo Primeiro Método
Button2 btnSegundoMetodo Segundo Método
Form1 frmPrincipal IP Discover

5. Organize-os da seguinte forma:

clip_image001

6. Importe as seguintes classes no início do projeto:

Imports System.Net
 
Imports System.Net.Dns

7. Vamos criar a seguinte função dentro do frmPrincipal.class

Public Overloads Function IP() As String
 
'****************************************************************
 
'OBTENÇÃO DO ENDEREÇO IP - (POR SYSTEM.NET).
 
'****************************************************************
 
'CRIANDO : VARIÁVEL PARA O ARMAZENAMENTO DO NOME DO HOST.
 
Dim HostName As IPHostEntry
 
'CRIANDO : VARIÁVEL PARA O ARMAZENAMENTO DO ENDEREÇO IP.
 
Dim EnderecoIP As String
 
'ARMAZENANDO : NOME DO HOST.
 
HostName = GetHostEntry(GetHostName)
 
'ARMAZENANDO : ENDEREÇO IP.
 
EnderecoIP = CType(HostName.AddressList.GetValue(0), IPAddress).ToString()
 
'RETORNANDO : ENDEREÇO IP.
 
Return EnderecoIP
 
End Function

Precisamos ressaltar algumas informações dessa função.

Assim como exposto no próprio comentário dentro da classe, vamos buscar o endereço IP utilizando uma classe do System do VB.NET, isso nos trará o endereço IP local, porém há uma limitação. Caso o computador esteja conectado à internet através de um roteador, possivelmente, o endereço retornado será o endereço MAC.

Pra solucionar esse grande pequeno problema, vamos utilizar uma segunda função:

Public Overloads Function IP(ByVal Endereco As String) As String
 
'****************************************************************
 
'OBTENÇÃO DO ENDEREÇO IP - (POR SITE EXTERNO).
 
'****************************************************************
 
'CRIANDO : VARIÁVEL PARA O ARMAZENAMENTO DO ENDEREÇO IP.
 
Dim EnderecoIP As String
 
'ARMAZENANDO : ENDEREÇO IP.
 
EnderecoIP = New WebClient().DownloadString(Endereco)
 
'RETORNANDO : ENDEREÇO IP.
 
Return EnderecoIP
 
End Function

Nesta função será utilizado um método diferente, pois a string com o IP do host virá de um site e não da classe System.Net, ou seja, a informação irá vir de terceiros e exibida na tela.

8. Agora vamos colocar dentro do controle btnPrimeiroMetodo o código que irá chamar a função e executar o processo através do System.Net:

Private Sub btnIP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrimeiroMetodo.Click
 
'EXIBINDO : ENDEREÇO IP (POR SYSTEM.NET).
 
txtIP1.Text = IP()
 
End Sub

9. Agora vamos colocar dentro do controle btnSegundoMetodo o código que irá chamar a função e executar o processo através da informação de um site:

Private Sub btnIP_2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSegundoMetodo.Click
 
'EXIBINDO : ENDEREÇO IP (POR SITE EXTERNO).
 
txtIP2.Text = IP("http://www.whatismyip.com/automation/n09230945.asp")
 
End Sub

10. Execute o programa e visualize o resultado.

clip_image002

clip_image003

Pronto! Agora temos a disposição um software que exibe o IP do host rapidamente e sem complicações.

Menção: whatismyip.com



Compartilhe:

Sobre: Lucio

Estudante e jovem desenvolvedor. Concluiu o ensino técnico de informática e o curso profissionalizante de montagem e manutenção. Gosta de aprender o porquê das coisas e não somente como utilizá-las, afinal instruções sem reflexão são para os computadores.

Comentários (1)

Orlando Malaquias 19 de novembro de 2011 às 18:15    

valeu a dica mano, continue a postar informações assim. sucessos!

Deixe um Comentário!

Nome: ( necessário )

E-Mail: ( necessário )

Website:

Comentário: