成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

使用.NET實現你的IP切換器

2010-08-28 10:52:10來源:西部e網作者:

  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. 基本的系統結構如下:

  \

  3. 實現方法:

  3.1 創建Windows Form 應用程序,設置程序名稱為Anytao.IPHelper,并向窗體文件中拖入一個ComboBox和一個按鈕控件,分別命名為:cbbIP和btnIPConfig,如下圖所示:

  \

  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帶來的便捷吧。

  \

  4. 系統展望

  Anytao.IpHelper,只是點燃了一個快速應用的火苗,我在平時的工作中也享受了這種方便的痛快,我的Emma的機子里也必備了IpHelper,就好像是我每天帶給她的愛護和關心。嘿嘿,寫代碼的也可以用這種方式,哄哄家里的娘子軍嘛,讓我們的程序人生更加和諧。

  言歸正傳,IpHelper只是個代步的工具,還有更多的思想和設計可以融會到里面做為充實,我將會再以后的時間逐漸完善以下幾個方面:

  設計Ip、IpConfig類,來以面向對象方式完善系統架構;

  增加Ip錄入功能,實現動態增加Ip選項的能力,而不需要手工實現;

  更多桌面網絡管理平臺融合。

  5. 結束語

  本文的主要目的是,以一個示例為切入點,講明白如何在托管環境中以Process方法來加載外部應用,使用Process可以方便的在你的應用中打開網站、郵件、外部程序、腳本等,因此是值得學習的東西。

  因為,以開發為基礎的文章是第一次嘗試,不知請大家見笑,小小工具希望給您的生活帶來方便。

關鍵詞:VS.NET

贊助商鏈接:

主站蜘蛛池模板: 明水县| 石门县| 柏乡县| 松潘县| 广宗县| 武定县| 兴文县| 云林县| 正蓝旗| 新巴尔虎右旗| 土默特左旗| 孟津县| 宜君县| 锦屏县| 阿巴嘎旗| 枣强县| 罗定市| 岚皋县| 泾源县| 许昌县| 墨脱县| 台北县| 台湾省| 木兰县| 双鸭山市| 玉山县| 鄂尔多斯市| 城口县| 会泽县| 榆中县| 兰坪| 邻水| 桦甸市| 迭部县| 惠安县| 大埔区| 榆社县| 庐江县| 舞阳县| 剑阁县| 嘉峪关市|