using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using System.Drawing; using System.Security.Principal; using System.Management; namespace ConsoleApplication5 { class Program { public static ManagementObjectCollection WMIQuery(string strwQuery) { ObjectQuery oQuery = new ObjectQuery(strwQuery); ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oQuery); ManagementObjectCollection oReturnCollection = oSearcher.Get(); return oReturnCollection; } static void Main(string[] args) { string[] tt = { "00:00:00:00:00:00", "00:00:00:00:00:00" }; test(tt); Console.ReadLine(); } static void test(string[] args) { SelectQuery wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionId != NULL"); ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(wmiQuery); foreach (ManagementObject item in searchProcedure.Get()) { Console.WriteLine(item["MACAddress"]); try { if (args.Contains(item["MACAddress"].ToString())) { //(item["MACAddress"]).Equals("00:00:00:00:00:00") item.InvokeMethod("Enable", null); } else { item.InvokeMethod("Disable", null); } } catch(NullReferenceException e) { item.InvokeMethod("Disable", null); } } } } }

string[] tt에 해당하는 mac 주소를 제외한 모든 네트워크 어뎁터의 연결을 끊어 버립니다.

제어판 ->네트워크 환경 -> 어뎁터 설정에 보시면 입력되어 있던 mac주소외에 어뎁터는 모두 연결이 끊깁니다. 

필요한 부분이 있으시면 필요에 맞게 고치시면 될 듯 싶습니다. 

참조 : Stack overflow, MSDN


ConsoleApplication5.zip


+ Recent posts