仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 650|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET教程之利用.NET完成你的IP切换器

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。  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命令处置器:
  翻开记事本,输出以下信息:
@echoAnytaoisswitchingyouripnow.
@echooff
netshinterfaceipsetaddress当地毗连static172.1.1.226255.0.0.0172.30.7.2541
netshinterfaceipsetdns当地毗连static200.121.5.1
echowww.anytao.com
EchoCongratulations,done.
pause
  注重:依照以上格局输出您的IP、子网掩码、默许网关和DNS服务器地点;假如是英文版操纵体系,将“当地毗连”改成“localAreaConnection”。
  另存该文本为批处置文件,在此另存为:home.bat。
  点击该批处置文件,便可将您的IP更新为上述值。
  2.2.Process办法简介
  Process办法,位于System.Diagnostics定名空间。MSDN的界说为:Process组件供应对正在盘算机上运转的历程的会见。关于启动、中断、把持和监督使用程序等义务,Process组件是很有效的工具。利用Process组件,能够猎取正在运转的历程的列表,大概能够启动新的历程。Process组件用于会见体系历程。初始化Process组件后,可以使用该组件来猎取有关以后运转的历程的信息。此类信息包含线程集、加载的模块(.dll和.exe文件)和功能信息(如历程以后利用的内存量)。因而,以Process办法来翻开内部批处置文件是托管情况下值得保举的办法。
  固然,以Process办法来翻开内部程序,并非独一的举措,最复杂的莫过于挪用WinAPI程序来完成,固然这又牵涉到非托管代码的范围,我们就不再多罗嗦了。
  我的另外一篇拙作《在WinForm使用程序中翻开Url》中,也有相干的叙述,详细的完成见代码部分的剖析。
  2.3.基础的体系布局以下:




  3.完成办法:
  3.1创立WindowsForm使用程序,设置程序称号为Anytao.IPHelper,并向窗体文件中拖进一个ComboBox和一个按钮控件,分离定名为:cbbIP和btnIPConfig,以下图所示:


  3.2双击btnIpConfig按钮,完成其Click事务,以下,详细代码见正文:
privatevoidbtnIpconfig_Click(objectsender,EventArgse)
{
try
{
//利用Process办法加载内部使用
ProcessmyProcess=newProcess();
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(FileNotFoundExceptionex)
{
MessageBox.Show(ex.Message);
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
  3.3固然我们还要完成程序加载时的猎取文件目次的操纵,以下:
privatevoidfrmMain_Load(objectsender,EventArgse)
{
//将设置文件加载到下拉框中
stringpath=Application.StartupPath+@"config";
if(Directory.Exists(path))
{
DirectoryInfodirinfo=newDirectoryInfo(path);
foreach(FileInfofiindirinfo.GetFiles())
{
cbbIP.Items.Add(Path.GetFileNameWithoutExtension(fi.FullName));
}
}
}
  3.4固然,依照上述办法,将设置好的netsh.exe批处置文件,放在方针地位后,你就能够完成本人的IpHelper了。
  3.5祝贺你,复杂的IPHelper已完成,运转你的程序,享用疾速设置IP带来的便利吧。




  4.体系瞻望
  Anytao.IpHelper,只是扑灭了一个疾速使用的火苗,我在平常的事情中也享用了这类便利的利落索性,我的Emma的机子里也必备了IpHelper,就仿佛是我天天带给她的保护和体贴。嘿嘿,写代码的也能够用这类体例,哄哄家里的娘子军嘛,让我们的程序人生加倍协调。
  言回正传,IpHelper只是个代步的工具,另有更多的头脑和计划能够交融到内里做为充分,我将会再今后的工夫渐渐完美以下几个方面:
  计划Ip、IpConfig类,来以面向工具体例完美体系架构;
  增添Ip录进功效,完成静态增添Ip选项的才能,而不必要手工完成;
  更多桌面收集办理平台交融。
  5.结语后下载
  本文的次要目标是,以一个示例为切进点,批注白怎样在托管情况中以Process办法来加载内部使用,利用Process能够便利的在你的使用中翻开网站、邮件、内部程序、剧本等,因而是值得进修的器材。由于,以开辟为基本的文章是第一次实验,不知请人人见笑,小小工具但愿给您的生存带来便利。代码部分还要部分完美,昔日先供应程序部分,代码部分我将于克日尽快上传,请人人包涵,但愿这个小工具能给你带来便利。  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命令处置器:
  翻开记事本,输出以下信息:
@echoAnytaoisswitchingyouripnow.
@echooff
netshinterfaceipsetaddress当地毗连static172.1.1.226255.0.0.0172.30.7.2541
netshinterfaceipsetdns当地毗连static200.121.5.1
echowww.anytao.com
EchoCongratulations,done.
pause
  注重:依照以上格局输出您的IP、子网掩码、默许网关和DNS服务器地点;假如是英文版操纵体系,将“当地毗连”改成“localAreaConnection”。
  另存该文本为批处置文件,在此另存为:home.bat。
  点击该批处置文件,便可将您的IP更新为上述值。
  2.2.Process办法简介
  Process办法,位于System.Diagnostics定名空间。MSDN的界说为:Process组件供应对正在盘算机上运转的历程的会见。关于启动、中断、把持和监督使用程序等义务,Process组件是很有效的工具。利用Process组件,能够猎取正在运转的历程的列表,大概能够启动新的历程。Process组件用于会见体系历程。初始化Process组件后,可以使用该组件来猎取有关以后运转的历程的信息。此类信息包含线程集、加载的模块(.dll和.exe文件)和功能信息(如历程以后利用的内存量)。因而,以Process办法来翻开内部批处置文件是托管情况下值得保举的办法。
  固然,以Process办法来翻开内部程序,并非独一的举措,最复杂的莫过于挪用WinAPI程序来完成,固然这又牵涉到非托管代码的范围,我们就不再多罗嗦了。
  我的另外一篇拙作《在WinForm使用程序中翻开Url》中,也有相干的叙述,详细的完成见代码部分的剖析。
  2.3.基础的体系布局以下:
  3.完成办法:
  3.1创立WindowsForm使用程序,设置程序称号为Anytao.IPHelper,并向窗体文件中拖进一个ComboBox和一个按钮控件,分离定名为:cbbIP和btnIPConfig,以下图所示:
  3.2双击btnIpConfig按钮,完成其Click事务,以下,详细代码见正文:
privatevoidbtnIpconfig_Click(objectsender,EventArgse)
{
try
{
//利用Process办法加载内部使用
ProcessmyProcess=newProcess();
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(FileNotFoundExceptionex)
{
MessageBox.Show(ex.Message);
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
  3.3固然我们还要完成程序加载时的猎取文件目次的操纵,以下:
privatevoidfrmMain_Load(objectsender,EventArgse)
{
//将设置文件加载到下拉框中
stringpath=Application.StartupPath+@"config";
if(Directory.Exists(path))
{
DirectoryInfodirinfo=newDirectoryInfo(path);
foreach(FileInfofiindirinfo.GetFiles())
{
cbbIP.Items.Add(Path.GetFileNameWithoutExtension(fi.FullName));
}
}
}
  3.4固然,依照上述办法,将设置好的netsh.exe批处置文件,放在方针地位后,你就能够完成本人的IpHelper了。
  3.5祝贺你,复杂的IPHelper已完成,运转你的程序,享用疾速设置IP带来的便利吧。
  4.体系瞻望
  Anytao.IpHelper,只是扑灭了一个疾速使用的火苗,我在平常的事情中也享用了这类便利的利落索性,我的Emma的机子里也必备了IpHelper,就仿佛是我天天带给她的保护和体贴。嘿嘿,写代码的也能够用这类体例,哄哄家里的娘子军嘛,让我们的程序人生加倍协调。
  言回正传,IpHelper只是个代步的工具,另有更多的头脑和计划能够交融到内里做为充分,我将会再今后的工夫渐渐完美以下几个方面:
  计划Ip、IpConfig类,来以面向工具体例完美体系架构;
  增添Ip录进功效,完成静态增添Ip选项的才能,而不必要手工完成;
  更多桌面收集办理平台交融。
  5.结语后下载
  本文的次要目标是,以一个示例为切进点,批注白怎样在托管情况中以Process办法来加载内部使用,利用Process能够便利的在你的使用中翻开网站、邮件、内部程序、剧本等,因而是值得进修的器材。由于,以开辟为基本的文章是第一次实验,不知请人人见笑,小小工具但愿给您的生存带来便利。代码部分还要部分完美,昔日先供应程序部分,代码部分我将于克日尽快上传,请人人包涵,但愿这个小工具能给你带来便利。

C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。
小女巫 该用户已被删除
沙发
发表于 2015-1-19 12:58:17 | 只看该作者
ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-24 12:55:49 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
变相怪杰 该用户已被删除
地板
发表于 2015-2-1 14:57:50 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
柔情似水 该用户已被删除
5#
发表于 2015-2-7 06:34:02 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
若天明 该用户已被删除
6#
发表于 2015-2-20 23:40:41 | 只看该作者
ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。
不帅 该用户已被删除
7#
发表于 2015-3-6 19:15:01 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-13 06:10:29 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
活着的死人 该用户已被删除
9#
发表于 2015-3-20 14:50:13 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 13:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表