본문 바로가기

Development/c#

[C#] 현재 설정 된 IP 가져오기

반응형

Win32_NetworkAdapterConfiguration 참조

https://docs.microsoft.com/ko-kr/windows/win32/cimwin32prov/win32-networkadapterconfiguration

 

Win32_NetworkAdapterConfiguration 클래스 - Win32 apps

네트워크 어댑터의 특성 및 동작을 나타냅니다. 이 클래스는 네트워크 어댑터와 독립적인 TCP/IP 프로토콜의 관리를 지 원하는 추가 속성 및 메서드를 포함 합니다.

docs.microsoft.com

 

개발 환경 : Visual Studio 2019 (c#)
public void GetIP()
        {
            // System.Management.dll 추가
            // using System.Management 추가
            using (var mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
            {
                using (var instances = mc.GetInstances())
                {
                    foreach (ManagementObject instance in instances)
                    {
                        if (!(bool)instance["ipEnabled"])
                        {
                            continue;
                        }

                        string settingID = (string)instance["SettingID"];
                        string[] ipAddresses = (string[])instance["IPAddress"];
                        string[] subnets = (string[])instance["IPSubnet"];
                        string[] gateways = (string[])instance["DefaultIPGateway"];
                        string domains = (string)instance["DNSDomain"];
                        string description = (string)instance["Description"];
                        bool dhcp = (bool)instance["DHCPEnabled"];
                        string[] dnses = (string[])instance["DNSServerSearchOrder"];
                        string macAddress = (string)instance["MACAddress"];

                        Debug.WriteLine("SetCurrentIP : Caption - {0}, ServiceName - {1}, MACAddress - {2}, Domain - {3}, Description = {4}", instance["Caption"], instance["ServiceName"], instance["MACAddress"], domains, description);

                    }
                }
            }
        }

참조는 shift + alt + F10 으로 아래 이미지와 같이 추가가 가능하다.

반응형