ss.\n", pIpNetTable->table[0].dwIndex); return FALSE; } //打印出索引为dwCurrIndex的适配器上的ARP表项 for (i=0; i < pIpNetTable->dwNumEntries; ++i) { //不相等则说明要打印下一个适配器上的ARP表项 if (pIpNetTable->table[i].dwIndex != dwCurrIndex) { dwCurrIndex = pIpNetTable->table[i].dwIndex; if (InterfaceIdxToInterfaceIp(pIpAddrTable,dwCurrIndex,dwIpAddr)) { printf("\nInterface: %s on Interface 0x%X\n",inet_ntoa(*((in_addr*)&dwIpAddr)),dwCurrIndex); printf(" Internet Address\tPhysical Address\tType\n"); } else { printf("Error: Could not convert Interface number 0x%X to IP address.\n", pIpNetTable->table[0].dwIndex); return FALSE; } } //打印此ARP表项中的数据 //IP地址 struct in_addr inadTmp; inadTmp.s_addr = pIpNetTable->table[i].dwAddr; //类型 switch(pIpNetTable->table[i].dwType) { case 1: strcpy_s(szType,"other"); break; case 2: strcpy_s(szType,"invalidated"); break; case 3: strcpy_s(szType,"dynamic"); break; case 4: strcpy_s(szType,"invalidType"); break; default: break; } printf(" %-16s\t%02X-%02X-%02X-%02X-%02X-%02X\t%-11s\n",inet_ntoa(inadTmp), pIpNetTable->table[i].bPhysAddr[0],pIpNetTable->table[i].bPhysAddr[1], pIpNetTable->table[i].bPhysAddr[2],pIpNetTable->table[i].bPhysAddr[3], pIpNetTable->table[i].bPhysAddr[4],pIpNetTable->table[i].bPhysAddr[5], szType); } return TRUE; }
|