You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.2 KiB
97 lines
2.2 KiB
#include "inc.h"
|
|
|
|
VOID
|
|
HandleAddress(
|
|
LONG lNumArgs,
|
|
PWCHAR rgpwszArgs[]
|
|
)
|
|
{
|
|
DWORD dwResult, i;
|
|
|
|
PMIB_IPADDRTABLE pTable;
|
|
|
|
|
|
//
|
|
// Get the address table
|
|
//
|
|
|
|
dwResult = AllocateAndGetIpAddrTableFromStack(&pTable,
|
|
TRUE,
|
|
GetProcessHeap(),
|
|
HEAP_NO_SERIALIZE);
|
|
|
|
if(dwResult isnot NO_ERROR)
|
|
{
|
|
PWCHAR pwszEntry;
|
|
|
|
pwszEntry = MakeString(STR_ADDRTABLE);
|
|
|
|
if(pwszEntry)
|
|
{
|
|
DisplayMessage(EMSG_RETRIEVAL_ERROR1,
|
|
dwResult,
|
|
pwszEntry);
|
|
|
|
FreeString(pwszEntry);
|
|
}
|
|
else
|
|
{
|
|
DisplayMessage(EMSG_RETRIEVAL_ERROR2,
|
|
dwResult);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(pTable->dwNumEntries is 0)
|
|
{
|
|
PWCHAR pwszEntryType;
|
|
|
|
pwszEntryType = MakeString(TOKEN_ADDRESS);
|
|
|
|
if(pwszEntryType)
|
|
{
|
|
DisplayMessage(EMSG_NO_ENTRIES1,
|
|
pwszEntryType);
|
|
|
|
FreeString(pwszEntryType);
|
|
}
|
|
else
|
|
{
|
|
DisplayMessage(EMSG_NO_ENTRIES2);
|
|
}
|
|
|
|
HeapFree(GetProcessHeap(),
|
|
HEAP_NO_SERIALIZE,
|
|
pTable);
|
|
|
|
return;
|
|
}
|
|
|
|
DisplayMessage(MSG_ADDRTABLE_HDR);
|
|
|
|
for(i = 0; i < pTable->dwNumEntries; i++)
|
|
{
|
|
ADDR_STRING rgwcAddr, rgwcMask;
|
|
PWCHAR pwszBCast;
|
|
|
|
NetworkToUnicode(pTable->table[i].dwAddr,
|
|
rgwcAddr);
|
|
|
|
NetworkToUnicode(pTable->table[i].dwMask,
|
|
rgwcMask);
|
|
|
|
pwszBCast = (pTable->table[i].dwBCastAddr)?L"255.255.255.255":L"0.0.0.0";
|
|
|
|
wprintf(L"%-15s\t%-15s\t%-15s\t\t%-4d\t%d\n",
|
|
rgwcAddr,
|
|
rgwcMask,
|
|
pwszBCast,
|
|
pTable->table[i].dwIndex,
|
|
pTable->table[i].dwReasmSize);
|
|
}
|
|
|
|
HeapFree(GetProcessHeap(),
|
|
HEAP_NO_SERIALIZE,
|
|
pTable);
|
|
}
|