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.

【通聯編輯:朱寶貴】

主站蜘蛛池模板: 99免费在线观看视频| 在线看片中文字幕| 免费福利视频网站| 一级爆乳无码av| 国产成人久久综合777777麻豆| 亚洲AV无码乱码在线观看裸奔 | 91在线国内在线播放老师| 天堂网亚洲系列亚洲系列| 国产精品专区第1页| 亚洲第一视频免费在线| aaa国产一级毛片| 狠狠色丁婷婷综合久久| 国产精品自拍合集| 国产精品一线天| 欧美一区二区精品久久久| av在线手机播放| 天堂成人在线| 亚洲国产日韩一区| 五月激激激综合网色播免费| 露脸一二三区国语对白| 亚洲AV永久无码精品古装片| 国产免费好大好硬视频| 97亚洲色综久久精品| 999精品色在线观看| 一级毛片免费高清视频| 国产成人无码久久久久毛片| 久久亚洲高清国产| 国产日韩丝袜一二三区| 国产无吗一区二区三区在线欢| 无码AV高清毛片中国一级毛片| 99无码中文字幕视频| 国产福利一区二区在线观看| 九色免费视频| 国产一区二区影院| 丁香六月综合网| 国产成人精品免费视频大全五级| 国产成人免费观看在线视频| 国产成人免费高清AⅤ| 丰满少妇αⅴ无码区| 国产精品一区二区在线播放| 精品伊人久久久久7777人| 欧美在线精品怡红院| 2020极品精品国产| 婷婷亚洲天堂| 久久一日本道色综合久久| 亚洲天堂精品在线| 亚洲 欧美 日韩综合一区| 日本道综合一本久久久88| 国产香蕉97碰碰视频VA碰碰看| 不卡无码网| 免费视频在线2021入口| 欧美爱爱网| 五月婷婷亚洲综合| 婷婷综合亚洲| 欧美在线精品一区二区三区| 香蕉视频在线观看www| 亚洲第一区在线| 国产情侣一区二区三区| 国产h视频在线观看视频| 女人18毛片一级毛片在线 | 国产欧美在线观看精品一区污| 在线观看国产小视频| 亚洲不卡影院| 国产自视频| 国产无码制服丝袜| 福利一区三区| 精品无码人妻一区二区| 毛片基地美国正在播放亚洲 | 青草精品视频| 九九热这里只有国产精品| 国产免费高清无需播放器| 日韩中文精品亚洲第三区| аⅴ资源中文在线天堂| 亚洲首页在线观看| 国产不卡一级毛片视频| 人妻一区二区三区无码精品一区 | 日本五区在线不卡精品| 国产精品天干天干在线观看| 麻豆AV网站免费进入| 国产成人精品日本亚洲| 自拍亚洲欧美精品| 亚洲成人动漫在线|