C# WinCE开发中获取MAC与IP地址


 1     
 2 public class SysInfo 
 3 { 
 4     private static string[] strEncrypt = new string[] { 
 5                         "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "K", "L", "M", "N", 
 6                         "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", 
 7                         "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP" }; 
 8     private static Int32 METHOD_BUFFERED = 0; 
 9     private static Int32 FILE_ANY_ACCESS = 0; 
10     private static Int32 FILE_DEVICE_HAL = 0x00000101; 
11     private const Int32 ERROR_NOT_SUPPORTED = 0x32; 
12     private const Int32 ERROR_INSUFFICIENT_BUFFER = 0x7A; 
13     private static Int32 IOCTL_HAL_GET_DEVICEID = ((FILE_DEVICE_HAL) << 16) | ((FILE_ANY_ACCESS) << 14) | ((21) << 2) | (METHOD_BUFFERED); 
14     [DllImport("coredll.dll", SetLastError = true)] 
15     private static extern bool KernelIoControl(Int32 dwIoControlCode, IntPtr lpInBuf, Int32 nInBufSize, byte[] lpOutBuf, Int32 nOutBufSize, ref   Int32 lpBytesReturned); 
16     [DllImport("Iphlpapi.dll", EntryPoint = "SendARP")] 
17     public static extern uint SendARP(uint DestIP, uint SrcIP, byte[] pMacAddr, ref uint PhyAddrLen); 
18 
19 
20 
21 
22         /// 
23         /// 获取MAC地址
24         /// 
25         /// 
26         public string GetMac() 
27         { 
28             uint ip = 0; 
29             string mac = string.Empty; 
30             //取本机IP列表
31             IPAddress[] ips = Dns.GetHostEntry(Dns.GetHostName()).AddressList; 
32             //取本机IP 
33             byte[] ipp = ips[1].GetAddressBytes(); 
34             ip = (uint)((ipp[0]) | (ipp[1] << 8) | (ipp[2] << 16) | (ipp[3] << 24)); 
35             //取MAC 
36             byte[] MacAddr = new byte[6]; 
37             uint PhyAddrLen = 6; 
38             uint hr = SendARP(ip, 0, MacAddr, ref PhyAddrLen); 
39             if (MacAddr[0] != 0 || MacAddr[1] != 0 || MacAddr[2] != 0 || MacAddr[3] != 0 || MacAddr[4] != 0 || MacAddr[5] != 0) 
40             { 
41                 mac = MacAddr[0].ToString("X2")+ ":" + MacAddr[1].ToString("X2") + ":" + 
42                       MacAddr[2].ToString("X2")+ ":" + MacAddr[3].ToString("X2") + ":" +
43                 MacAddr[4].ToString("X2") + ":" + MacAddr[5].ToString("X2"); 
44             } 
45             return mac; 
46         } 
47 
48 
49 
50         /// 
51         ///获取本机IP 
52         /// 
53         /// 
54         public string GetIpAddress() 
55         { 
56             string strHostName = Dns.GetHostName(); //得到本机的主机名
57             IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP 
58             string strAddr = ipEntry.AddressList[1].ToString(); 
59             return strAddr;  www.2cto.com
60         } 
61 }

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
Bing Webmaster Portal Back