ADSL拨号获得不同IP地址
public void ChangeIP()
{
try
{
//change ip
Execute("rasdial \"宽带名称\" /d", 6000);//断开宽带
Execute("rasdial \"宽带名称\" \"宽带账号\" \"宽带密码\"", 6000);//连接宽带
}
catch
{
}
}
/**/
///
/// 执行DOS命令,返回DOS命令的输出
/// dos命令
/// 等待命令执行的时间(单位:毫秒),如果设定为0,则无限等待
/// 返回输出,如果发生异常,返回空字符串
public static string Execute(string dosCommand, int milliseconds)
{
string output = ""; //输出字符串
if (dosCommand != null && dosCommand != "")
{
Process process = new Process(); //创建进程对象
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe"; //设定需要执行的命令
startInfo.Arguments = "/C " + dosCommand; //设定参数,其中的“/C”表示执行完命令后马上退出
startInfo.UseShellExecute = false; //不使用系统外壳程序启动
startInfo.RedirectStandardInput = false; //不重定向输入
startInfo.RedirectStandardOutput = true; //重定向输出
startInfo.CreateNoWindow = true; //不创建窗口
process.StartInfo = startInfo;
try
{
if (process.Start()) //开始进程
{
if (milliseconds == 0)
process.WaitForExit(); //这里无限等待进程结束
else
process.WaitForExit(milliseconds); //这里等待进程结束,等待时间为指定的毫秒
output = process.StandardOutput.ReadToEnd();//读取进程的输出
}
}
catch
{
}
finally
{
if (process != null)
process.Close();
}
}
return output;
}
{
try
{
//change ip
Execute("rasdial \"宽带名称\" /d", 6000);//断开宽带
Execute("rasdial \"宽带名称\" \"宽带账号\" \"宽带密码\"", 6000);//连接宽带
}
catch
{
}
}
/**/
///
/// 执行DOS命令,返回DOS命令的输出
/// dos命令
/// 等待命令执行的时间(单位:毫秒),如果设定为0,则无限等待
/// 返回输出,如果发生异常,返回空字符串
public static string Execute(string dosCommand, int milliseconds)
{
string output = ""; //输出字符串
if (dosCommand != null && dosCommand != "")
{
Process process = new Process(); //创建进程对象
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe"; //设定需要执行的命令
startInfo.Arguments = "/C " + dosCommand; //设定参数,其中的“/C”表示执行完命令后马上退出
startInfo.UseShellExecute = false; //不使用系统外壳程序启动
startInfo.RedirectStandardInput = false; //不重定向输入
startInfo.RedirectStandardOutput = true; //重定向输出
startInfo.CreateNoWindow = true; //不创建窗口
process.StartInfo = startInfo;
try
{
if (process.Start()) //开始进程
{
if (milliseconds == 0)
process.WaitForExit(); //这里无限等待进程结束
else
process.WaitForExit(milliseconds); //这里等待进程结束,等待时间为指定的毫秒
output = process.StandardOutput.ReadToEnd();//读取进程的输出
}
}
catch
{
}
finally
{
if (process != null)
process.Close();
}
}
return output;
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int refreshcount = 0;
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("要刷新的地址");
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
List<string> IPS = new List<string>();
public void RefreshBlog()
{
if (refreshcount > 5)//每个IP差不多可以用5次
{
ChangeIP();
//判断是否连接宽带成功 即是否有两个IP(内网和外网)
while (System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.Length < 2)
{
ChangeIP();
}
//获取外网IP并判断是否已使用过
string ip = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList[1].ToString();
while (IPS.Contains(ip))
{
ChangeIP();
ip = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList[1].ToString();
}
IPS.Add(ip);
refreshcount = 0;
}
refreshcount++;
}
public void ChangeIP()
{
try
{
//change ip
Execute("rasdial \"宽带名称\" /d", 6000);//断开宽带
Execute("rasdial \"宽带名称\" \"账号\" \"密码\"", 6000);//连接宽带
}
catch
{
}
}
/**/
///
/// 执行DOS命令,返回DOS命令的输出
///
/// dos命令
/// 等待命令执行的时间(单位:毫秒),如果设定为0,则无限等待
/// 返回输出,如果发生异常,返回空字符串
public static string Execute(string dosCommand, int milliseconds)
{
string output = ""; //输出字符串
if (dosCommand != null && dosCommand != "")
{
Process process = new Process(); //创建进程对象
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe"; //设定需要执行的命令
startInfo.Arguments = "/C " + dosCommand; //设定参数,其中的“/C”表示执行完命令后马上退出
startInfo.UseShellExecute = false; //不使用系统外壳程序启动
startInfo.RedirectStandardInput = false; //不重定向输入
startInfo.RedirectStandardOutput = true; //重定向输出
startInfo.CreateNoWindow = true; //不创建窗口
process.StartInfo = startInfo;
try
{
if (process.Start()) //开始进程
{
if (milliseconds == 0)
process.WaitForExit(); //这里无限等待进程结束
else
process.WaitForExit(milliseconds); //这里等待进程结束,等待时间为指定的毫秒
output = process.StandardOutput.ReadToEnd();//读取进程的输出
}
}
catch
{
}
finally
{
if (process != null)
process.Close();
}
}
return output;
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Thread.Sleep(1000);
RefreshBlog();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
seturl:
try
{
webBrowser1.Navigate("博客地址");
}
catch
{
goto seturl;
}
}
}
{
public Form1()
{
InitializeComponent();
}
int refreshcount = 0;
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("要刷新的地址");
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
List<string> IPS = new List<string>();
public void RefreshBlog()
{
if (refreshcount > 5)//每个IP差不多可以用5次
{
ChangeIP();
//判断是否连接宽带成功 即是否有两个IP(内网和外网)
while (System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.Length < 2)
{
ChangeIP();
}
//获取外网IP并判断是否已使用过
string ip = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList[1].ToString();
while (IPS.Contains(ip))
{
ChangeIP();
ip = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList[1].ToString();
}
IPS.Add(ip);
refreshcount = 0;
}
refreshcount++;
}
public void ChangeIP()
{
try
{
//change ip
Execute("rasdial \"宽带名称\" /d", 6000);//断开宽带
Execute("rasdial \"宽带名称\" \"账号\" \"密码\"", 6000);//连接宽带
}
catch
{
}
}
/**/
///
/// 执行DOS命令,返回DOS命令的输出
///
/// dos命令
/// 等待命令执行的时间(单位:毫秒),如果设定为0,则无限等待
/// 返回输出,如果发生异常,返回空字符串
public static string Execute(string dosCommand, int milliseconds)
{
string output = ""; //输出字符串
if (dosCommand != null && dosCommand != "")
{
Process process = new Process(); //创建进程对象
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe"; //设定需要执行的命令
startInfo.Arguments = "/C " + dosCommand; //设定参数,其中的“/C”表示执行完命令后马上退出
startInfo.UseShellExecute = false; //不使用系统外壳程序启动
startInfo.RedirectStandardInput = false; //不重定向输入
startInfo.RedirectStandardOutput = true; //重定向输出
startInfo.CreateNoWindow = true; //不创建窗口
process.StartInfo = startInfo;
try
{
if (process.Start()) //开始进程
{
if (milliseconds == 0)
process.WaitForExit(); //这里无限等待进程结束
else
process.WaitForExit(milliseconds); //这里等待进程结束,等待时间为指定的毫秒
output = process.StandardOutput.ReadToEnd();//读取进程的输出
}
}
catch
{
}
finally
{
if (process != null)
process.Close();
}
}
return output;
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Thread.Sleep(1000);
RefreshBlog();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
seturl:
try
{
webBrowser1.Navigate("博客地址");
}
catch
{
goto seturl;
}
}
}