惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
S
Security Affairs
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
Microsoft Azure Blog
Microsoft Azure Blog
雷峰网
雷峰网
Recent Announcements
Recent Announcements
WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
博客园_首页
The Cloudflare Blog
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
MyScale Blog
MyScale Blog
S
SegmentFault 最新的问题
P
Proofpoint News Feed
Y
Y Combinator Blog
Jina AI
Jina AI
博客园 - 聂微东
A
About on SuperTechFans
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
F
Full Disclosure
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
T
Tailwind CSS Blog
J
Java Code Geeks
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Blog of Author Tim Ferriss
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 三生石上(FineUI控件)
W
WeLiveSecurity
PCI Perspectives
PCI Perspectives
Attack and Defense Labs
Attack and Defense Labs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
宝玉的分享
宝玉的分享
IT之家
IT之家
Hacker News: Ask HN
Hacker News: Ask HN
The Register - Security
The Register - Security
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs

博客园 - melody&bobo

C#加密解密 端口数据库连接 ANSI, UNICODE,UTF8编码的区别 调用系统API打印图片文字 windows2003安全设置 图片与字节数组相互转换的方法 jQuery Ajax 方法调用 Asp.Net WebService 的详细例子 使用instantclient_11_2和PL/SQL Developer工具包连接oracle 11g远程数据库 查看SQL 语句执行性能 SSIS 获取时间表达式 获得时间段之间每月的最后一天 C#(.Net) 解决Informix中文乱码问题 SQL SPLIT() 方法实现 JS获取URL参数值 datatable操作集合 表单提交文件 - melody&bobo - 博客园 nginx实现网站负载均衡测试实例(windows下IIS做负载实测) Web Application Stress Tool(WAS,Web应用负载测试工具)详细说明 Base64 加密字符串和文件
ADSL拨号获得不同IP地址
melody&bobo · 2011-06-29 · via 博客园 - melody&bobo

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

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

    }