下面放出Unity获取安卓mac地址源码供大家参考学习,如果有更好、更快的方法能获取到MaC地址的话,请一定要分享出来哦,好了,直接上源码。
首先在添加引用中选中System.Management
- using System.Management;
- using System.Management.Instrumentation;
- private void GetInfo()
- {
- string cpuInfo = "";//cpu序列号
- ManagementClass cimobject = new ManagementClass("Win32_Processor");
- ManagementObjectCollection moc = cimobject.GetInstances();
- foreach(ManagementObject mo in moc)
- {
- cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
- Response.Write ("cpu序列号:"+cpuInfo.ToString ());
- }
- //获取硬盘ID
- String HDid;
- ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
- ManagementObjectCollection moc1 = cimobject1.GetInstances();
- foreach(ManagementObject mo in moc1)
- {
- HDid = (string)mo.Properties["Model"].Value;
- Response.Write ("硬盘序列号:"+HDid.ToString ());
- }
-
- //获取网卡硬件地址
-
-
- ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
- ManagementObjectCollection moc2 = mc.GetInstances();
- foreach(ManagementObject mo in moc2)
- {
- if((bool)mo["IPEnabled"] == true)
- Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString());
- mo.Dispose();
- }
- }
-
- public static float GetCPUPersent()
- {
- float cpuload = 0;
- const string categoryname = "processor";
- const string countername = "% processor time";
- const string instancename = "_total";
- PerformanceCounter pc = new PerformanceCounter(categoryname, countername, instancename);
- int i = 10;
- while (i > 0)
- {
- Thread.Sleep(1000); // wait for 1 second
- cpuload = pc.NextValue();
- if (cpuload > 0)
- {
- break;
- }
- i--;
- }
- return cpuload;
- }
- public static void GetDiskSpace(string path, out long DiskAll, out long DiskActive)
- {
- DiskAll = 0;
- DiskActive = 0;
- long a, b, c;
- int aaa = GetDiskFreeSpaceEx(path, out a, out b, out c);
- DiskAll = (long)(b / 1024 / 1024);
- DiskActive = (long)(a / 1024 / 1024);
- }
- public static void GetMemoryInfo(out uint MemoryAll, out uint MemoryUsed)
- {
- MemoryAll = 0;
- MemoryUsed = 0;
- MEMORY_INFO MemInfo = new MEMORY_INFO();
- GlobalMemoryStatus(ref MemInfo);
- MemoryAll = MemInfo.dwTotalPhys / 1024 / 1024;
- MemoryUsed = (MemInfo.dwTotalPhys - MemInfo.dwAvailPhys) / 1024 / 1024;
- }
-
-
-
- [DllImport("kernel32")]
- public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);
- //定义内存的信息结构
- [StructLayout(LayoutKind.Sequential)]
- public struct MEMORY_INFO
- {
- public uint dwLength;
- public uint dwMemoryLoad;
- public uint dwTotalPhys;
- public uint dwAvailPhys;
- public uint dwTotalPageFile;
- public uint dwAvailPageFile;
- public uint dwTotalVirtual;
- public uint dwAvailVirtual;
- }
- [DllImport("kernel32.dll", EntryPoint = "GetDiskFreeSpaceExA")]
- public static extern int GetDiskFreeSpaceEx(string lpRootPathName, out long lpFreeBytesAvailable, out long lpTotalNumberOfBytes, out long lpTotalNumberOfFreeBytes);