FreeTime - Stefano Passatordi 's Blog


Libera la mente...ecco il Blog di Stefano Passatordi
Statistiche
  • Views Home Page: 157.786
  • Views Posts: 375.276
  • Views Gallerie: 763.187
  • n° Posts: 210
  • n° Commenti: 148
Archivio Posts
Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005
Mappa

Recuperare IP pubblico dietro router

Come tutti sanno, recuperare il proprio IP quando si è direttamente connessi in rete, senza l'utilizzo di un router, è semplice :

IPAddress[] addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
string myIP = addressList[0].ToString();

Il discorso cambia quando si è connessi in rete tramite router poichè ci viene assegnato un IP interno e solo il router ha un IP pubblico.
Come fare in questo caso??

using System.Text.RegularExpressions;
using System.Net;

public  IPAddress GetIp()
{
            string myIp = "http://whatismyip.com";
            string ipRegx = @"(?<=<TITLE>.*)\d*\.\d*\.\d*\.\d*(?=</TITLE>)";
            WebClient webClient = new WebClient();
            UTF8Encoding utf8 = new UTF8Encoding();
            string requestHtml = "";
            try
            {
                requestHtml = utf8.GetString(webClient.DownloadData(myIp));
            }
            catch (WebException e)
            {
              Console.Write(e.ToString());
            }
            Regex regx = new Regex(ipRegx);
            Match res = regx.Match(requestHtml);
            IPAddress publicIp = null;
            if (res.Success)
            {
                publicIp = IPAddress.Parse(res.Value);
            }
            return publicIp;
        }

Credo che il codice sia facile da capire...nulla di complicato!
Enjoy!
Categoria: Programmazione
martedì, 05 giu 2007 Ore. 11.41
Ora e Data
Calendario
dicembre 2024
lmmgvsd
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
Blogs Amici
    Links
      Copyright © 2002-2007 - Blogs 2.0
      dotNetHell.it | Home Page Blogs
      ASP.NET 2.0 Windows 2003