bacho_sun |
Отправлено: 12.11.2005, 16:56 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
Ребята кто в курсе есть ли какой нибудь — бесплатный компонент для Builder C++ 6.0 ( а может это есть в Builder) , который позволит получить список
ARP таблицы ,
как
arp -a
или еще как это сделать — если нет такого компонента — не используя dos овские комманды. |
|
AVC |
Отправлено: 14.11.2005, 15:06 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE | как это сделать — если нет такого компонента — не используя dos овские комманды
|
CODE |
#include <IPHlpApi.h>
// + Project -> Add to project -> добавлена библиотека ...\PSDK\IPHlpApi.lib
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
unsigned long size = 0;
GetIpNetTable(NULL, &size, false);
if (size == 0) return;
AnsiString recTypes[] = {"", "other", "invalid", "dynamic", "static"};
MIB_IPNETTABLE* pIpNetTable = (MIB_IPNETTABLE*) new char[size];
if (GetIpNetTable(pIpNetTable, &size, true) == NO_ERROR)
{ AnsiString text;
MIB_IPNETROW* rec;
for (int i(0); i < pIpNetTable->dwNumEntries; i++)
{ rec = &pIpNetTable->table[i];
text += AnsiString("") +
AnsiString(int(rec->dwIndex)) + ": " +
AnsiString(int((rec->dwAddr >> 0) & 0xFF)) + "." +
AnsiString(int((rec->dwAddr >> 8) & 0xFF)) + "." +
AnsiString(int((rec->dwAddr >> 16) & 0xFF)) + "." +
AnsiString(int((rec->dwAddr >> 24) & 0xFF)) + " ";
for(int j(0); j < rec->dwPhysAddrLen; j++)
text += IntToHex(rec->bPhysAddr[j], 2) + ".";
text += recType[int(rec->dwType)] + "\n";
}
ShowMessage(text);
}
delete [] pIpNetTable;
}
|
|
|
|