Web/Sliverlight2011. 12. 4. 00:48

실버라이트 OOB 환경에서 로컬 컴퓨터의 IPAddress를 가져오는 방법입니다.
기존 실버라이트에서는 InitParams를 이용하거나 WCF 서비스등을 통해 얻어 올 수 있지만
OOB에서는 사용할 수 없음으로 다른 방법이 필요한데요.
OOB의 COM 오토메이션과 WMI를 이용하면 가능합니다.

     public class Util

    {

        public static string GetLocalIPAddress()

        {

            if (!Application.Current.HasElevatedPermissions)

            {

                return string.Empty;

            }

 

            try

            {

                if (AutomationFactory.IsAvailable)

                {

                    using (dynamic wmi = AutomationFactory.CreateObject("WbemScripting.SWbemLocator"))

                    {

                        dynamic service = wmi.ConnectServer(".", @"root\cimv2");

                        dynamic query = service.ExecQuery(@"select IPAddress from 
                                                Win32_NetworkAdapterConfiguration where DNSHostName is not null"
);

 

                        string ipAddress = query.ItemIndex(0).IPAddress[0];

                        return ipAddress;

                    }

                }

                else

                {

                    return string.Empty;

                }

            }

            catch (Exception ex) { MessageBox.Show(ex.Message); }

 

            return string.Empty;

        }

    }


'Web > Sliverlight' 카테고리의 다른 글

Sliverlight Using COM  (0) 2011.12.05
Posted by 열ㅇl