![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать маску подсети? [D6, Win95/98, WinXP]
FireMan_Alexey © (2003-12-19 09:28:00)
Ув. мастера! Не могли бы вы поделиться как можно достать маску подсети программно?
Если можно с исходником или ссылкой на статью!
Заранее благодарен!
Fay (2003-12-19 13:12:00) [1]
type
MIB_IPADDRROW = record
dwAddr : DWORD;
dwIndex : DWORD;
dwMask : DWORD;
dwBCastAddr : DWORD;
dwReasmSize : DWORD;
unused1 : Word;
unused2 : Word;
end;
PMIB_IPADDRTABLE = ^MIB_IPADDRTABLE;
MIB_IPADDRTABLE = record
dwNumEntries : DWORD;
table : array[0..0] of MIB_IPADDRROW;
end;
function GetIpAddrTable(pIpAddrTable : PMIB_IPADDRTABLE; var pdwSize : ULONG; bOrder : BOOL) : DWORD; stdcall; external "iphlpapi.dll" name "GetIpAddrTable";
procedure TForm1.Button1Click(Sender : TObject);
type
T4Bytes = array[0..3] of Byte;
P4Bytes = ^T4Bytes;
var
p : PMIB_IPADDRTABLE;
i, n : Cardinal;
j : P4Bytes;
begin
n := 0;
GetIpAddrTable(nil, n, True);
GetMem(p, n);
GetIpAddrTable(p, n, True);
n := p.dwNumEntries;
for i := 0 to n - 1 do
begin
j := @p^.table[i].dwMask;
ShowMessage(Format("%d.%d.%d.%d", [j^[0], j^[1], j^[2], j^[3]]));
end;
FreeMem(p);
end;
Verg (2003-12-19 12:16:00) [2]
IpHlpApi::GetIpAddrTable
Поищи на MSDN-е