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 "";
}
