Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать маску подсети? [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-е


Наверх

Титульная страница Поиск, карта сайта Написать письмо