2016-04-13 55 views
0

Gördüğünüz gibi internete bağlı herhangi bir PC'de herhangi bir gerçek ip adresi almak için aşağıdaki kodu kullanıyorum ama bir site almak için arama yapmadan gerçek IP adresini almak için bir yolu olup olmadığını merak ediyordum?Site talebi kullanmadan gerçek IP adresini nasıl alabilirim? C#

ve benim hotmail/gmail/... vb göndermek için bir yol olup olmadığını ben posta sunucuları tarafından engellenen internet ancak bunların tümünün birçok yollar buldular email olarak hesap

 private string getExternalIp() 
    { 
     try 
     { 
      string externalIP; 
      externalIP = (new WebClient()).DownloadString("http://checkip.dyndns.org/"); 
      externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}")) 
         .Matches(externalIP)[0].ToString(); 
      return externalIP; 

     } 
     catch 
     { 
      MessageBox.Show("Please Call Technical Support", "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error); 
      return null; 
     } 
    } 
+0

IP adresiniz ağ arayüzünüzde olmalıdır. Bunu elde etmek için neden harici bir site kullanmanız gerekiyor? –

+0

NAT'ın arkasındaki kamu IP'sini istiyor. – o9000

cevap

0

Aslında bir şeyle bağlantı kurmadan harici IP adresi almak için güvenilir bir yöntem olduğunu düşünmüyorum. Bunun nedeni makinenizin NAT'ın arkasında olabileceği ve harici IP adresi olan bilgilere sahip olmadığıdır.

Elbette bu makinenin arabirimlerinden birinin dış IP adresini yapılandırdığını biliyorsanız, tüm arabirimleri NetworkInterface.GetAllNetworkInterfaces kullanarak listeleyebilirsiniz.