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:

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.


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

Comentários (1)
valeu a dica mano, continue a postar informações assim. sucessos!
Deixe um Comentário!