📄 network.pas
字号:
unit NetWork;
interface
uses Windows, SysUtils, Nb30, Winsock;
function GetUserName: string;
//获取计算机名函数
function GetHostName: string;
//获取计算机IP函数:
function GetHostIP: string;
function GetAdapterMac(ANo: Integer): string;
implementation
function GetUserName: string;
var
UserName: array[0..128] of char;
dwSize: DWORD;
begin
result := '';
Windows.GetUserName(UserName, dwSize); //szUserName就是本机用户名.
Result := StrPas(UserName);
end;
//获取计算机名函数
function GetHostName: string;
var
ComputerName: array[0..MAX_COMPUTERNAME_LENGTH + 1] of char;
Size: Cardinal;
begin
result := '';
Size := MAX_COMPUTERNAME_LENGTH + 1;
GetComputerName(ComputerName, Size);
Result := StrPas(ComputerName);
end;
//获取计算机IP函数:
function GetHostIP: string;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
result := '';
WSAStartup(2, WSAData);
HostEnt := GetHostByName(PChar(GetHostName));
if HostEnt <> nil then
begin
with HostEnt^ do
result := Format('%d.%d.%d.%d', [Byte(h_addr^[0]), Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);
end;
WSACleanup;
end;
function GetAdapterMac(ANo: Integer): string;
//获取网卡的MAC地址
var
Ncb: TNcb;
Adapter: TAdapterStatus;
Lanaenum: TLanaenum;
IntIdx: Integer; //
cRc: Char;
StrTemp: string;
begin
Result := '';
try
ZeroMemory(@Ncb, SizeOf(Ncb));
Ncb.ncb_command := Chr(NCbenum);
NetBios(@NCb);
Ncb.ncb_buffer := @Lanaenum; //再处理enum命令
Ncb.ncb_length := SizeOf(Lanaenum);
cRc := NetBios(@Ncb);
if Ord(cRc) <> 0 then exit;
ZeroMemory(@Ncb, SizeOf(Ncb)); //适配器清零
Ncb.ncb_command := Chr(NcbReset);
Ncb.ncb_lana_num := Lanaenum.lana[aNo];
cRc := NetBios(@Ncb);
if Ord(cRc) <> 0 then exit;
//得到适配器状态
ZeroMemory(@Ncb, SizeOf(Ncb));
Ncb.ncb_command := Chr(NcbAstat);
Ncb.ncb_lana_num := Lanaenum.lana[aNo];
StrPcopy(Ncb.ncb_callname, '*');
Ncb.ncb_buffer := @Adapter;
Ncb.ncb_length := SizeOf(Adapter);
NetBios(@Ncb);
//将mac地址转换成字符串输出
StrTemp := '';
for IntIdx := 0 to 5 do
StrTemp := StrTemp + IntToHex(Integer(Adapter.adapter_address[intIdx]), 2);
Result := StrTemp;
finally
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -