2011-03-07 4 views
0

Windows-CE (C# 사용)에서 내 IP와 서버의 IP를 얻는 방법은 무엇입니까?내 장치 및 서버의 IP를 얻는 방법 IP (windows-CE)

+0

** Dns.GetHostName(); ** Compact Framework에 있습니까? http://msdn.microsoft.com/en-us/library/system.net.dns.gethostname.aspx – Stormenet

+0

"서버 IP"가 의미하는 바가 확실하지 않습니다. 서버의 호스트 이름을 알고 있고 IPv4 주소를 알고 싶습니까? – Bryan

답변

2

귀하의 질문은 막연합니다. 원하는 어댑터 또는 유형의 주소를 모르기 때문에 첫 번째 로컬 어댑터의 IPv4 주소를 원한다고 가정합니다. 당신이 호스트 이름을 알고 있음을 필요로 지정된 서버의 IP 주소를 얻기

var ip = (from a in Dns.GetHostEntry(Dns.GetHostName()).AddressList 
    where a.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork 
     select a).First().ToString(); 

그리고 당신은 그 이름에 조회를 (즉, Dns.GetHostEntry) 할 거라고 : 그것은 다음과 같이 보일 것입니다. Dns.GetHostName() 호출 대신 서버 호스트 이름을 사용한다는 점을 제외하면 위 코드와 매우 비슷합니다.

0

일부 P/Invoke 마법과 관련됩니다. 그것이 많은 코드이고 내가 가지고있는 것은 부분적으로 독점적이기 때문에, 나는 그것을 모두 게시 할 수는 없지만, 몇 가지 힌트를 줄 수 있습니다.

// MSDN: http://msdn.microsoft.com/en-us/library/aa365917(v=vs.85).aspx 
[DllImport("iphlpapi.dll", SetLastError = true)] 
internal static extern int GetAdaptersInfo(IntPtr pAdapterInfo, ref int pOutBufLen); 

[DllImport("iphlpapi.dll", SetLastError = true)] 
internal static extern int GetAdapterIndex(string AdapterName, ref int IfIndex); 
0

나는이 질문이 오래된 것을 알고 있지만 최근이 정확한 문제에 직면했습니다. OpenNETCF를 이미 사용하고 있으므로이 라이브러리를 사용하여 NIC 및 관련 주소를 쿼리합니다. 이것은 Windows Mobile 6.5 (CE 5.2)에있었습니다.

var ifs = OpenNETCF.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces(); 
foreach (var nic in ifs) 
{ 
    IPAddress myip = nic.CurrentIpAddress; 
} 

DNS가 구성되지 않은 경우에도 작동합니다.

관련 문제