All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
ASP.NET实例:手把手教你如何扩展GridView之自动排序篇_[Asp.Net教程]
数据库2005,日志收缩简便方法_mssql学习_编程技术
编写高性能Web应用程序的10个技巧_[Asp.Net教程]
asp.net,2.0,下的表单验证Cookieless属性_[Asp.Net教程]
用C#和ADO.NET建立一个数据绑定网格_.net资料_编程技术
c#中一维数组的声明
新手教程:手把手教你学Web,Services,教程_[Asp.Net教程]
数据库正规化和设计技巧(3)_mssql学习_编程技术
PHP,开发中的中文编码问题_php资料_编程技术
ASP.NET2.0,WebRource,开发微调按钮控件_[Asp.Net教程]
Reading number is top 10 pictures
More attractive than sora aoi4
西班牙山村小景1
In the world the most mysterious 21 place landscape1
Sell the barbecue as says father du breul3
中国处女图鉴2
Sora aoi mirror memorial classics2
Female model behind the bitterness, often being overcharged2
The real super beauty15
Absolutely shocked. National geographic 50 animal photographys5
好身材能把衣服穿出3D效果
Download software ranking
Kung.Fu.Panda.2
The Bermuda triangle2
Love the forty days
Tram sex maniac 2 (H) rar bag4
Tram sex maniac 2 (H) rar bag14
Call Of Duty2
The hero
linux高级编程
美女游泳记
尖东毒玫瑰B
aaa published in(发表于) 2013/12/18 8:07:32 Edit(编辑)
使用.NET实现你的IP切换器_.net资料_编程技术

使用.NET实现你的IP切换器_.net资料_编程技术

使用.NET实现你的IP切换器_.net资料_编程技术-你的首页-uuhomepage.com

  1. 引言


  经常在公司、客户和家里奔波,切换IP是天天要做的事情,所以有心开发一个小的应用程序,来实现IP地址的快捷切换。既然有了思路就着手来做,我首先想到的是应用netsh.exe工具来实现,所以配置一个批处理文件来实现netsh.exe命令的执行,然后使用.NET框架来调用bat文件即可大功告成。话已至此,马上行动。


  2. 基本原理


  根据上述解决思路,我的小系统,定名为《Anytao.IpHelper》的解决方案如下:


  以批处理文件加载netsh.exe命令,实现IP加载;


  以.NET的Process方法,实现对外部应用的调用;


  附带进度控制和文件检索功能。


  因此,有必要对系统运行的原理进行简单的梳理,来龙去脉,揭开本质。


  2.1. netsh工具简介


  长篇大论的netsh命令介绍,在此就不特别介绍了,百度上随便就可以找到更加详细的netsh命令手册,可以耗你一天的功夫来研究,本文既然着眼于应用,就从实际的招式来阐述,详细的武功秘籍留待看官量身定做,此处只提供参考:netsh命令详解、netsh命令使用。


  在本文中,请参考以下步骤来实现你的netsh命令处理器:


  打开记事本,输入以下信息:

@echo Anytao is switching your ip now.
@echo off
netsh
interface ip set address 本地连接 static 172.1.1.226 255.0.0.0 172.30.7.254 1
netsh
interface ip set dns 本地连接 static 200.121.5.1

echo www.anytao.com
Echo Congratulations, done.
pause


  注意:按照以上格式输入您的IP、子网掩码、默认网关和DNS服务器地址;如果是英文版操作系统,将“本地连接”改为“local Area Connection ”。


  另存该文本为批处理文件,在此另存为:home.bat。


  点击该批处理文件,即可将您的IP更新为上述值。


  2.2. Process方法简介


  Process方法,位于System.Diagnostics命名空间。MSDN的定义为:Process 组件提供对正在计算机上运行的进程的访问。对于启动、停止、控制和监视应用程序等任务,Process 组件是很有用的工具。使用 Process 组件,可以获取正在运行的进程的列表,或者可以启动新的进程。Process 组件用于访问系统进程。初始化 Process 组件后,可使用该组件来获取有关当前运行的进程的信息。此类信息包括线程集、加载的模块(.dll 和 .exe 文件)和性能信息(如进程当前使用的内存量)。因此,以Process方法来打开外部批处理文件是托管环境下值得推荐的方法。


  当然,以Process方法来打开外部程序,并不是唯一的办法,最简单的莫过于调用WinAPI程序来实现,当然这又牵扯到非托管代码的范畴,我们就不再多罗嗦了。


  我的另一篇拙作《在WinForm应用程序中打开Url》中,也有相关的论述,具体的实现见代码部分的分析。


  2.3. 基本的系统结构如下:


  使用.NET实现你的IP切换器


  3. 实现方法:


  3.1 创建Windows Form 应用程序,设置程序名称为Anytao.IPHelper,并向窗体文件中拖入一个ComboBox和一个按钮控件,分别命名为:cbbIP和btnIPConfig,如下图所示:


  使用.NET实现你的IP切换器


  3.2 双击btnIpConfig按钮,实现其Click事件,如下,具体代码见注释:


private void btnIpconfig_Click(object sender, EventArgs e)
{
try
{
//使用Process方法加载外部应用
Process myProcess = new Process();
myProcess.StartInfo.FileName
= Application.StartupPath + @"\config\" + cbbIP.SelectedItem.ToString() + ".bat";
MessageBox.Show(myProcess.StartInfo.FileName);
myProcess.StartInfo.UseShellExecute
= false;
myProcess.StartInfo.RedirectStandardOutput
= true;
myProcess.Start();
myProcess.WaitForExit();
}
catch (FileNotFoundException ex)
{
MessageBox.Show(ex.Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}


  3.3 当然我们还要实现程序加载时的获取文件目录的操作,如下:


private void frmMain_Load(object sender, EventArgs e)
{
//将配置文件加载到下拉框中
string path = Application.StartupPath + @"\config\";
if (Directory.Exists(path))
{
DirectoryInfo dirinfo
= new DirectoryInfo(path);
foreach (FileInfo fi in dirinfo.GetFiles())
{
cbbIP.Items.Add(Path.GetFileNameWithoutExtension(fi.FullName));
}
}
}


  3.4 当然,按照上述方法,将配置好的netsh.exe批处理文件,放在目标位置后,你就可以实现自己的IpHelper了。


  3.5 恭喜你,简单的IPHelper已经实现,运行你的程序,享受快速配置IP带来的便捷吧。


  使用.NET实现你的IP切换器


  4. 系统展望


  Anytao.IpHelper,只是点燃了一个快速应用的火苗,我在平时的工作中也享受了这种方便的痛快,我的Emma的机子里也必备了IpHelper,就好像是我每天带给她的爱护和关心。嘿嘿,写代码的也可以用这种方式,哄哄家里的娘子军嘛,让我们的程序人生更加和谐。


  言归正传,IpHelper只是个代步的工具,还有更多的思想和设计可以融会到里面做为充实,我将会再以后的时间逐渐完善以下几个方面:


  设计Ip、IpConfig类,来以面向对象方式完善系统架构;


  增加Ip录入功能,实现动态增加Ip选项的能力,而不需要手工实现;


  更多桌面网络管理平台融合。


  5. 结束语


  本文的主要目的是,以一个示例为切入点,讲明白如何在托管环境中以Process方法来加载外部应用,使用Process可以方便的在你的应用中打开网站、邮件、外部程序、脚本等,因此是值得学习的东西。


  因为,以开发为基础的文章是第一次尝试,不知请大家见笑,小小工具希望给您的生活带来方便。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.