c#獲取外網IP地址的方法


1.如果你是通過路由上網的,可以通過訪問ip138之類的地址來獲取外網IP

2.如果是通過PPPOE撥號上網的,可以使用以下代碼獲取IP

//獲取寬帶連接(PPPOE撥號)的IP地址,timeout超時(秒),當寬帶未連接或者連接中的時候獲取不到IP
        public static string GetIP_PPPOE(int timeout)
        {
            int i = timeout * 2;
            while (i > 0)
            {
                try
                {
                    NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
                    bool havePPPOE = false;
                    foreach (NetworkInterface adapter in nics)
                    {
                        if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ppp)
                        {
                            havePPPOE = true;
                            IPInterfaceProperties ip = adapter.GetIPProperties();     //IP配置信息
                            if (ip.UnicastAddresses.Count > 0)
                            {
                                return ip.UnicastAddresses[0].Address.ToString();
                            }
                        }
                    }
                    //當沒有寬帶連接的時候直接返回空
                    if (!havePPPOE) return "";
                }
                catch (Exception ex)
                {
                    Console.WriteLine("獲取寬帶撥號IP出錯:" + ex.Message);
                }
                i--;
                Thread.Sleep(500);
            }
            return "";
        }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM