999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

通過C#語言判斷本地計算機物理網絡接口的研究

2021-12-24 07:13:38胡迪
電腦知識與技術 2021年29期

胡迪

摘要:為避免桌面終端運維工程師在工作中則經常面臨各類重復性的操作,擬通過“多用途運維軟件包的研制”項目是將企業中運維運維工程師常用的操作進行集成,并以.NET平臺為底層,利用C#語言將注冊表操作、PowerShell命令執行等進行整合的一套自研軟件包。該項目通過WPF框架在統一的前端界面中完成可視化的顯示,簡化工程師操作,提高工作效率,減少誤操作率,保證操作過程的標準化并滿足企業信息化安全標準。

關鍵詞:.NET Core;C#;注冊表

中圖分類號:TP3? 文獻標識碼:A

文章編號:1009-3044(2021)29-0128-02

1背景

我公司一直承擔著集團內京直地區各下屬公司的桌面計算機終端運維工作,涉及設備數量超過4000千臺。終端運維工程師在工作中則經常面臨各類重復性的操作,如:打開傳統控制面板、修改計算機名稱、計算機加域及退域、打印機添加及管理、辦公軟件及操作系統激活、驅動程序安裝及檢查、應用軟件安裝及刪除、瀏覽器配置等。工程師需要不斷切換工作場景,分別打開各功能所對應模塊手動進行設置,不僅影響工作效率,還增加了誤操作率,特別是對新員工培訓上崗容易造成混亂,也影響新入職員工的上崗速度。

為避免上述情況,擬通過“多用途運維軟件包”的研制,將桌面終端運維工程師常用的操作進行集成。在統一界面中完成可視化的前端顯示,簡化工程師操作,提高工作效率,減少誤操作率,保證操作過程的標準化。同時滿足企業內的信息化安全規定及標準。

本軟件包共有激活、系統配置、設備管理、軟件管理四個分類,包含激活操作系統、激活辦公套件、顯示操作系統授權信息、顯示辦公套件版本及授權信息、修改計算機名、加入退出 AD域、操作系統代理配置、打開控制面板、關閉系統休眠、打開 PowerShell控制臺、打開設備管理器、打印機管理、添加打印機、顯示網卡信息、磁盤管理、連接服務器、添加或刪除程序、打開 Internet選項等功能。

考慮到該項目成果主要應用于微軟Windows操作系統平臺上,且后期可能出現的跨平臺需求,實施過程以.NET Core為底層平臺,前端界面使用WPF框架展示,實現主流現代化的展示界面,后臺代碼則通過C#程序設計語言進行開發。其中.Net Core、WPF、C#產品均已開放源代碼,且可實現跨平臺的支持能力,為未來可能出現的平臺遷移及跨多平臺情況設計好底層框架。

2現狀

鑒于企業信息化管理規定中關于“所有計算機必須綁定網卡的物理地址方可準入公司內部局域網絡”的要求,在多用途運維軟件包中設計了輸出本地計算機網絡接口數據的模塊,對本機物理網絡接口在前端界面中完成輸出顯示,以方便終端運維工程師快速獲取本機網卡的物理地址。但是在微軟公司 Windows操作系統中還存有大量的虛擬網卡,此類網卡無論在用戶的日常應用中抑或是工程師的運維操作中均不存在任何意義,甚至對工程師在故障排查操作過程中的判斷產生了迷惑及不利因素。

本文通過調用類與方法,結合對注冊表的判斷,以實現在前端界面中過濾本地計算機虛擬網絡接口,僅輸出顯示物理網絡接口數據的功能,并滿足項目實施需求。

在微軟公司關于.NET平臺的文檔中,闡述了其提供的一種對網絡流量數據、網絡地址信息和本地計算機地址變更通知訪問權限的命名空間,在該命名空間中包含了提供網絡接口配置和統計接口信息的類。該類可用于封裝本地計算機上網絡接口的數據。

在本項目實施中,首先創建了用于獲取本地計算機上全部網絡接口數據的私有方法,在該方法中將本地計算機全部網絡接口的數據存入名為category 的NetworkInterface類型數組變量中。而后對該數組變量進行遍歷循環,將網絡名稱、網卡物理地址的值以字符串型式輸出顯示至名為lstAdapter的前端界面列表框組件中。然后通過方法將網絡接口的IPv4地址信息保存至UnicastIPAddressInformationCollection類型的ipCollection變量中,最后對該變量其進行遍歷、判斷及輸出。

通過對該私有方法的代碼進行編譯及執行,可以看到如圖1所示前端界面中正常輸出并顯示了本地計算機上的網絡接口數據。

對輸出結果進行分析,發現其中包含了本地計算機所有的網絡接口數據,既有物理網絡接口,又有虛擬網絡接口。而虛擬網絡接口在本項目中被設定為無效信息,無需進行輸出顯示。所以還需要在代碼中對此類接口的數據進行判斷,進而過濾并跳過在前端界面中的輸出顯示操作,從而達到前端界面僅輸出顯示物理網絡接口數據的需求。

3思路

針對現狀,實施方案擬將在代碼中增加判斷節點作為切入點,通過對網絡接口的名稱或網絡接口的類型增加判斷,進而實現對網絡接口為物理接口或虛擬接口的劃分。

通過對微軟公司關于驅動程序的文檔進行分析,發現該公司在操作系統接口中為設備安裝程序類提供了固定的系統定義唯一標識(GUID)。考慮到微軟公司操作系統底層的注冊表中包含了所有硬件設備的全部信息,又在注冊表中對該唯一標識進行了分析,發現該鍵中包含數個以其他唯一標識(GUID)命名的子鍵,再將各子鍵中的Name值項與設備管理器中網絡適配器內的所有網絡接口名稱進行比對,確定了該值項即對應了其網絡接口的名稱。證實了上述關于注冊表中包含了本地計算機所有硬件設備的全部信息的思路。

而在分析子鍵中的PnPInstanceId值項后發現其為操作系統中對該設備設置的唯一標識。將所有Name子鍵中的PnPIn?stanceId值項中的數據進行比對可以發現均以 PCI、SWD 或 GUID 為起始,再結合對 Name值項的分析,可以發現以PCI 為前三個字符的PnPInstanceId值項,其對應的Name值項均為本地計算機中的物理網絡接口,其余則對應藍牙、Miniport等虛擬網絡接口。進一步證實了可以通過對注冊表的判斷來區分本地計算機所有網絡接口數據類型的思路。

根據以上思路,最終確定采用在私有方法中添加對注冊表內PnPInstanceId值項的輪詢遍歷,并在該過程中將值項數據的前三個字符與“PCI”進行比對,用于判斷物理或虛擬網絡接口的方案。對結果與”PCI”一致的執行在前端界面的輸出顯示,對非一致的結果執行過濾跳過,以實現對本地計算機所有網絡接口數據的篩選及過濾。

4實現

在項目實施中,首先依然通過私有方法獲取本地計算機上全部網絡接口的數據,并將全部網絡接口數據存入名為catego?ry的NetworkInterface類型數組變量中。然后在對該數組變量進行循環遍歷時,先創建用于保存注冊表值項PnPInstanceId對應路徑的字符串類型變量adapterRegKey,并對該變量執行只讀打開操作。隨后對其變量中的字符串值進行非空判斷,對空內容,認為該計算機中無任何網絡接口,并結束輸出本地計算機網絡接口數據模塊的執行;對非空內容,將其PnPInstanceId的值轉換為字符串類型并保存到代碼中名為pnpInstanceID的字符串類型變量中,再對其字符串長度及前三個字符進行判斷,長度大于3且前三個字符等于“PCI”,說明該網絡接口類型為物理網絡接口,將其輸出至前端界面中;否則判斷其表示為虛擬網絡接口,代碼執行跳出本次循環并繼續進行下一次循環判斷其他PnPInstanceId值項的操作。

string macAddress;

NetworkInterface[] category = NetworkInterface. GetAllNet?workInterfaces();

foreach (NetworkInterface adapter in category)

{

string adapterRegKey =@"SYSTEM\CurrentControlSet\Con?trol\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" + adapter.Id +@"\Connection";

RegistryKeyopenKey = Registry.LocalMachine.OpenSubKey (adapterRegKey, false);

if (openKey != null)

{

string pnpInstanceID = openKey. GetValue("PnPInstanceId", "").ToString();

if (pnpInstanceID.Length>3 &&pnpInstanceID.Substring(0, 3)=="PCI")

{

lstAdapter.Items.Add("名稱:"+ adapter.Name);

}

在代碼中增加了通過注冊表對物理網絡接口及虛擬網絡接口的判斷后再次進行編譯和執行,并將前端界面顯示的輸出結果與本地計算機設備管理器中的網絡適配器列表進行比對。

5結論

通過在C#程序中對命令空間、類、私有方法的使用,結合對操作系統設備安裝程序類的分析,結合對注冊表的判斷,完成了通過C#語言判斷本地計算機物理網卡差在前端界面進行展示輸出的需求。

作為微軟公司在.NET 時代的旗幟性語言,C#語言是由 C 和 C++衍生出來的面向對象的編程語言,運行于.NET Frame? work和.NET Core平臺之上的高級程序設計語言,其兼具安全、穩定、簡單、優雅等特性,以強大的操作能力、優雅的語法風格、創新的語言特性和便捷的面向組件編程的支持成為.NET開發的首選語言。

同時,C#程序設計語言與Windows操作系統同出于微軟公司之手,其操作系統中存在大量的基礎類庫、動態鏈接庫、接口可以被 C#語言輕易地調用,以對操作系統進行更深層次的操作。

在本研究中,將.NET平臺中提供的類、方法與注冊表進行組合,滿足項目需求。而對于項目中如修改計算機名、加入或退出AD域等的其他需求,同樣需要充分利用.NET平臺與Windows操作系統深度結合的優勢,調用操作系統中的其他動態鏈接庫,不斷拓展思路,滿足項目需求,推動項目順利開展。

目前市場上針對桌面運維工程師的運維軟件包數量較少且功能單一,可定制性低,既不能滿足企業實際需求,更無法滿足企業內的信息化安全標準。通過本項目的自研,既滿足了工程師實際應用中的需求,減少操作步驟以及誤操作率,在提高工作效率、統一工作標準的同時也符合了企業內部信息化安全的標準。

參考文獻

[1] 左成,虞紅芳.可靠性感知下的虛擬數據中心映射算法[J].計算機應用,2015,35(2):299-304.

[2] 陳春凱 . 云計算環境下基于拓撲感知的虛擬網絡映射研究[J].計算機應用與軟件,2014,31(12):156-160.

[3] 劉光遠,蘇森.面向底層單節點失效的輕量級可靠虛擬網絡映射算法[J].電子與信息學報,2013,35(11):2644-2649.

【通聯編輯:朱寶貴】

主站蜘蛛池模板: 理论片一区| 中文字幕一区二区视频| 久久青青草原亚洲av无码| 国产美女视频黄a视频全免费网站| 91精品网站| 色老二精品视频在线观看| 国产精品亚洲精品爽爽| 亚洲视频二| 国产9191精品免费观看| 国产靠逼视频| 一本大道香蕉久中文在线播放 | 久久永久视频| 日韩成人在线视频| 9久久伊人精品综合| 67194亚洲无码| 免费可以看的无遮挡av无码| 美臀人妻中出中文字幕在线| 久久久久久久97| 免费一级毛片在线观看| 亚洲精品国产精品乱码不卞 | 91久久精品日日躁夜夜躁欧美| 久草性视频| www亚洲天堂| 国产亚卅精品无码| 成人日韩视频| 亚洲成人一区在线| 91久久青青草原精品国产| 国产人人乐人人爱| 亚洲国产日韩一区| 欧美精品色视频| 性欧美精品xxxx| 永久在线精品免费视频观看| 999国产精品永久免费视频精品久久| 91色综合综合热五月激情| 久久久久88色偷偷| 日韩欧美国产精品| 最新国语自产精品视频在| 一级毛片高清| 亚洲a级在线观看| 欧美精品1区| 新SSS无码手机在线观看| 国产一级二级在线观看| 国产精品女熟高潮视频| 亚洲品质国产精品无码| 三上悠亚一区二区| 免费国产福利| 18禁不卡免费网站| 强乱中文字幕在线播放不卡| 园内精品自拍视频在线播放| 99热这里只有成人精品国产| 亚洲天堂免费在线视频| 99这里只有精品免费视频| 国产综合精品一区二区| 中文字幕人妻av一区二区| 特黄日韩免费一区二区三区| 2019年国产精品自拍不卡| 久久综合色播五月男人的天堂| 精品福利视频网| 69国产精品视频免费| 国产成人啪视频一区二区三区| 美女啪啪无遮挡| 凹凸国产熟女精品视频| 欧美成人精品欧美一级乱黄| 亚洲av中文无码乱人伦在线r| 婷婷开心中文字幕| 亚洲无码高清免费视频亚洲| 国内黄色精品| 日本妇乱子伦视频| 亚洲人成色在线观看| 久久这里只有精品66| 国产H片无码不卡在线视频| 日韩成人在线网站| 国产丝袜一区二区三区视频免下载| 无码福利视频| 中文成人在线| 国产精品深爱在线| 亚洲日韩AV无码精品| 国产AV无码专区亚洲精品网站| 国产精品成人免费综合| 超清无码熟妇人妻AV在线绿巨人| 麻豆国产精品视频| 国产亚洲欧美在线中文bt天堂|