Exemple #1
0
        public string GetMacAddress2()
        {
            string str = "";

            try
            {
                NCB ncb = new NCB
                {
                    ncb_command = 0x37
                };
                int cb = Marshal.SizeOf(typeof(LANA_ENUM));
                ncb.ncb_buffer = Marshal.AllocHGlobal(cb);
                ncb.ncb_length = (ushort)cb;
                char      ch        = Win32API.Netbios(ref ncb);
                LANA_ENUM lana_enum = (LANA_ENUM)Marshal.PtrToStructure(ncb.ncb_buffer, typeof(LANA_ENUM));
                Marshal.FreeHGlobal(ncb.ncb_buffer);
                if (ch != '\0')
                {
                    return("");
                }
                for (int i = 0; i < lana_enum.length; i++)
                {
                    ASTAT astat;
                    ncb.ncb_command  = 50;
                    ncb.ncb_lana_num = lana_enum.lana[i];
                    if (Win32API.Netbios(ref ncb) != '\0')
                    {
                        return("");
                    }
                    ncb.ncb_command     = 0x33;
                    ncb.ncb_lana_num    = lana_enum.lana[i];
                    ncb.ncb_callname[0] = 0x2a;
                    cb             = Marshal.SizeOf(typeof(ADAPTER_STATUS)) + (Marshal.SizeOf(typeof(NAME_BUFFER)) * 30);
                    ncb.ncb_buffer = Marshal.AllocHGlobal(cb);
                    ncb.ncb_length = (ushort)cb;
                    ch             = Win32API.Netbios(ref ncb);
                    astat.adapt    = (ADAPTER_STATUS)Marshal.PtrToStructure(ncb.ncb_buffer, typeof(ADAPTER_STATUS));
                    Marshal.FreeHGlobal(ncb.ncb_buffer);
                    if (ch == '\0')
                    {
                        if (i > 0)
                        {
                            str = str + ":";
                        }
                        str = string.Format("{0,2:X}{1,2:X}{2,2:X}{3,2:X}{4,2:X}{5,2:X}", new object[] { astat.adapt.adapter_address[0], astat.adapt.adapter_address[1], astat.adapt.adapter_address[2], astat.adapt.adapter_address[3], astat.adapt.adapter_address[4], astat.adapt.adapter_address[5] });
                    }
                }
            }
            catch
            {
            }
            return(str.Replace(' ', '0'));
        }
Exemple #2
0
        public static string GetMacAddress()
        {
            string text = "";

            try
            {
                NCB ncb = default(NCB);
                ncb.ncb_command = 55;
                int num = Marshal.SizeOf(typeof(LANA_ENUM));
                ncb.ncb_buffer = Marshal.AllocHGlobal(num);
                ncb.ncb_length = (ushort)num;
                char      num2      = Win32API.Netbios(ref ncb);
                LANA_ENUM lANA_ENUM = (LANA_ENUM)Marshal.PtrToStructure(ncb.ncb_buffer, typeof(LANA_ENUM));
                Marshal.FreeHGlobal(ncb.ncb_buffer);
                if (num2 != 0)
                {
                    return("");
                }
                for (int i = 0; i < lANA_ENUM.length; i++)
                {
                    ncb.ncb_command  = 50;
                    ncb.ncb_lana_num = lANA_ENUM.lana[i];
                    if (Win32API.Netbios(ref ncb) != 0)
                    {
                        return("");
                    }
                    ncb.ncb_command     = 51;
                    ncb.ncb_lana_num    = lANA_ENUM.lana[i];
                    ncb.ncb_callname[0] = 42;
                    num            = Marshal.SizeOf(typeof(ADAPTER_STATUS)) + Marshal.SizeOf(typeof(NAME_BUFFER)) * 30;
                    ncb.ncb_buffer = Marshal.AllocHGlobal(num);
                    ncb.ncb_length = (ushort)num;
                    char  num3  = Win32API.Netbios(ref ncb);
                    ASTAT aSTAT = default(ASTAT);
                    aSTAT.adapt = (ADAPTER_STATUS)Marshal.PtrToStructure(ncb.ncb_buffer, typeof(ADAPTER_STATUS));
                    Marshal.FreeHGlobal(ncb.ncb_buffer);
                    if (num3 == '\0')
                    {
                        if (i > 0)
                        {
                            text += ":";
                        }
                        text = string.Format("{0,2:X}{1,2:X}{2,2:X}{3,2:X}{4,2:X}{5,2:X}", aSTAT.adapt.adapter_address[0], aSTAT.adapt.adapter_address[1], aSTAT.adapt.adapter_address[2], aSTAT.adapt.adapter_address[3], aSTAT.adapt.adapter_address[4], aSTAT.adapt.adapter_address[5]);
                    }
                }
            }
            catch
            {
            }
            return(text.Replace(' ', '0'));
        }