1. Função para obter IP Externo (IP da Internet) em C#
Uma função simples, funcional somente para aplicativos desktop. Ele faz um WebRequest ao
site do MeuIP, e lê o retorno do site, buscando somente a "string" referente ao IP descoberto. Melhorias podem
e devem ser feitas.
Código:
using System.IO;
using System.Net;
...
public static string GetIpRemoto()
{
//Cria uma requisição para a URL
WebRequest rq = WebRequest.Create("http://www.meuip.com.br/");
//obtém o response a partir do request
HttpWebResponse rp = (HttpWebResponse)rq.GetResponse();
//obtém um stream contendo a resposta retornada pelo servidor
Stream ds = rp.GetResponseStream();
//Cria um StreamReader para leitura
StreamReader rd = new StreamReader(ds);
//Lê os dados
string responseFromServer = rd.ReadToEnd();
//fecha os objetos
rd.Close();
ds.Close();
rp.Close();
//procura por indexafor fixo no resultado
string URL = "IP";
int i = responseFromServer.IndexOf(URL) + URL.Length + 2;
//captura o IP descoberto
URL = string.Empty;
while (!(responseFromServer[i].ToString() == "<"))
{
URL += responseFromServer[i];
i += 1;
}
return URL.Trim();
}
Autor Adriano Santos
E-mail adrianodrix@gmail.com