Web & Development

웹과 개발 관련 정보 페이지 입니다.

[Visual Studio] C# DNS 값을 변경하는 소스작성자 이완주2018-11-22조회수 206

Visual Studio에서 파일 / 새 프로젝트 / Visual C# / 콘솔 앱(.Net Framework) 로 새롭게 생성하여

아래와 같이 소스 코드를 변경

using System;

using System.Collections.Generic;

using System.Management;

 

namespace setDNS

{

    class Program

    {

        static void Main(string[] args)

        {

            if (args == null)

            {

                Console.WriteLine("Usage: setDNS.exe {Preferred DNS Server} {Alternate DNS Server}");

                Console.WriteLine("   ex) setdns.exe 192.168.10.11 192.168.10.12");

                Console.WriteLine("Press any key to continue.");

                Console.ReadLine();

                return;

            }else

            {

                string pdns = args[0];

                string adns = args[1];

           

 

                List<string> current_dnss = new List<string>();

                ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");

                ManagementObjectCollection objMOC = objMC.GetInstances();

 

                foreach (ManagementObject objMO in objMOC)

                {

                    if ((bool)objMO["IPEnabled"])

                    {

                        try

                        {

                            ManagementBaseObject newDNS =

                                objMO.GetMethodParameters("SetDNSServerSearchOrder");

                            string[] s = { pdns, adns };

                            newDNS["DNSServerSearchOrder"] = s;

                            ManagementBaseObject setDNS =

                                objMO.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);

                        }

                        catch (Exception)

                        {

                            throw;

                        }

                    }

                }

            }

       

        }

   

    }

}

  

DNS 값을 변경하기 위해서 ManagementClass를 사용 하기 위해 System Management Class를 추가하여 사용

https://docs.microsoft.com/ko-kr/dotnet/api/system.management.managementclass?view=netframework-4.7.2

 

using System.Management; 을 사용하기 위해서는 프로젝트 / 참조 추가

 

 

 

 

해당 권한은 관리자 권한으로 실행을 해야 함으로 아래와 같이 관리자 권한 설정

 

 

http://kbadmin.globalsoft.co.kr/editor/upload/90916_0457_2.pnghttp://kbadmin.globalsoft.co.kr/editor/upload/90916_0457_3.png

프로젝트 속성 / 보안 / ClickOnce 보안 설정 사용 체크 / app.manifest 파일 생성 확인 / ClickOnce 보안 설정 사용 체크 해제

App.manifest

<requestedExecutionLevel level="asInvoker" uiAccess="false" /> ->

        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

 

생성된 app.manifest 파일의 코드를 위와 같이 변경합니다.

 

 

 

setdns 192.168.10.11 192.168.10.12 실행하고 예를 클릭하면

 


ipconfig /all 명령어로 설정된 IP로 변경 됨을 확인 함.

 

 

« 이전 글 리스트 다음 글이 없습니다.