13,825
社区成员
发帖
与我相关
我的任务
分享
INTERFACE_INFO infos[20];
int nByteReturned;
WSAIoctl(idSocket, SIO_GET_INTERFACE_LIST, NULL, 0, infos, sizeof(INTERFACE_INFO)*20, nByteReturned, NULL, NULL);
int nInterface = nByteReturned / sizeof(INTERFACE_INFO);
#include <tchar.h>
#include <iphlpapi.h>
#include <stdio.h>
#pragma link "iphlpapi.lib"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PMIB_IPADDRTABLE pIPTable = NULL;
DWORD dwSize = 0;
::GetIpAddrTable(pIPTable, &dwSize, TRUE);
pIPTable = (PMIB_IPADDRTABLE)::GlobalAlloc(GPTR, dwSize);
::GetIpAddrTable(pIPTable, &dwSize, TRUE);
TCHAR szIPAddr[17], szSubMask[17];
for (DWORD i=0; i < pIPTable->dwNumEntries; i++)
{
// IP
memset(szIPAddr, 0x0, sizeof(szIPAddr));
_stprintf(szIPAddr, TEXT("%d.%d.%d.%d"),
LOWORD(pIPTable->table[i].dwAddr) & 0x00FF,
LOWORD(pIPTable->table[i].dwAddr) >> 8,
HIWORD(pIPTable->table[i].dwAddr) & 0x00FF,
HIWORD(pIPTable->table[i].dwAddr) >> 8);
// Subnet Mask
memset(szSubMask, 0x0, sizeof(szSubMask));
_stprintf(szSubMask, TEXT("%d.%d.%d.%d"),
LOWORD(pIPTable->table[i].dwMask) & 0x00FF,
LOWORD(pIPTable->table[i].dwMask) >> 8,
HIWORD(pIPTable->table[i].dwMask) & 0x00FF,
HIWORD(pIPTable->table[i].dwMask) >> 8);
Memo1->Lines->Add(String().sprintf(TEXT("IP: %s 子网掩码: %s"),
szIPAddr, szSubMask));
}
::GlobalFree(pIPTable);
}