2016-04-13 4 views
0

私は以下のコードを使ってインターネットに接続されているPCに実際のIPアドレスを取得していますが、実際のIPアドレスを取得する方法がない場合は、サイトリクエストを使用せずに実際のIPアドレスを取得する方法は? c#

と私のhotmail/Gmailの/ ...等に送信する方法がある場合、私はメールサーバによってブロックされたインターネットが、それらのすべての多くの方法を発見したメール として考慮

 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アドレスは、ネットワークインターフェイス上にある必要があります。なぜそれを得るために外部サイトを採用する必要がありますか? –

+0

彼はNATの後ろにパブリックIPを望んでいます。 – o9000

答えて

0

私は実際に何かに接続せずに外部IPアドレスを取得する信頼できる方法はないと思います。これは、マシンがNATの背後にある可能性があり、外部IPアドレスとは何の情報もないためです。

もちろん、このマシンがそのインターフェイスの外部IPアドレスを設定していることがわかっている場合は、NetworkInterface.GetAllNetworkInterfacesを使用してすべてのインターフェイスをリストすることができます。

関連する問題