分类: 电脑/网络 >> 互联网
解析:
MAC地址
MAC(Media Access Control, 介质访问控制)地址是识别LAN(局域网)节点的标识。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(IEEE)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。
形象的说,MAC地址就如同我们身份z上的身份z号码,具有全球唯一性。
如何获取本机的MAC?
对于数量不多的几台机器,我们可以这样获取MAC地址:在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。即可看到MAC地址。
在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入“ipconfig /all”→回车。即可看到MAC地址。
C#获取本机的MAC地址,参考代码如下:
using System;using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
using SystemManagement;
namespace _17获取MAC地址
{
class Program
{
static void Main(string[] args)
{
ManagementObjectSearcher nisc = new ManagementObjectSearcher("select from Win32_NetworkAdapterConfiguration");
foreach (ManagementObject nic in niscGet())
{
if (ConvertToBoolean(nic["ipEnabled"]) == true)
{
ConsoleWriteLine("{0} - {1}", nic["ServiceName"], nic["MACAddress"]);
}
}
ConsoleReadKey();
}
}
}
可以用以下函数:
uses NB30;
function GetMACAdress: string; //uses NB30;
var
NCB: PNCB;
Adapter: PAdapterStatus;
URetCode: PChar;
RetCode: char;
I: integer;
Lenum: PlanaEnum;
_SystemID: string;
TMPSTR: string;
begin
Result := '';
_SystemID := '';
Getmem(NCB, SizeOf(TNCB));
Fillchar(NCB^, SizeOf(TNCB), 0);
Getmem(Lenum, SizeOf(TLanaEnum));
Fillchar(Lenum^, SizeOf(TLanaEnum), 0);
Getmem(Adapter, SizeOf(TAdapterStatus));
Fillchar(Adapter^, SizeOf(TAdapterStatus), 0);
LenumLength := chr(0);
NCBncb_command := chr(NCBENUM);
NCBncb_buffer := Pointer(Lenum);
NCBncb_length := SizeOf(Lenum);
RetCode := Netbios(NCB);
i := 0;
repeat
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncbncb_command := chr(NCBRESET);
Ncbncb_lana_num := lenumlana[I];
RetCode := Netbios(Ncb);
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncbncb_command := chr(NCBASTAT);
Ncbncb_lana_num := lenumlana[I];
// Must be 16
Ncbncb_callname := ('');
Ncbncb_buffer := Pointer(Adapter);
Ncbncb_length := SizeOf(TAdapterStatus);
RetCode := Netbios(Ncb);
//---- calc _systemId from mac-address[2-5] XOR mac-address[1]
if (RetCode = chr(0)) or (RetCode = chr(6)) then
begin
_SystemId := IntToHex(Ord(Adapteradapter_address[0]), 2) + '-' +
IntToHex(Ord(Adapteradapter_address[1]), 2) + '-' +
IntToHex(Ord(Adapteradapter_address[2]), 2) + '-' +
IntToHex(Ord(Adapteradapter_address[3]), 2) + '-' +
IntToHex(Ord(Adapteradapter_address[4]), 2) + '-' +
IntToHex(Ord(Adapteradapter_address[5]), 2);
end;
Inc(i);
until (I >= Ord(LenumLength)) or (_SystemID <> '00-00-00-00-00-00');
FreeMem(NCB);
FreeMem(Adapter);
FreeMem(Lenum);
GetMacAdress := _SystemID;
end;
procedure TForm1Button1Click(Sender: TObject);
var
wxymac : String;
begin
wxymac:=GetMACAdress;
end;
获取数据库所在计算机主机名:
1utl_inaddrget_host_address 环境中IP地址
如果查询失败,则提示系统错误
查询>
以上就是关于MAC地址是什么怎么才可以知道自己的MAC地址是什么全部的内容,包括:MAC地址是什么怎么才可以知道自己的MAC地址是什么、c# 怎么获取本机真实的mac 地址、请问在delphi中怎么获得本机MAC地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)