Str="Physical Address: "; for (UINT i=0; i<pAdapter->AddressLength; i++) { if (i == (pAdapter->AddressLength - 1)) sprintf(lpszText, "%.2X",(int)pAdapter->Address[i]); else sprintf(lpszText, "%.2X",(int)pAdapter->Address[i]); Str=Str+lpszText; } eAdaptersInfo.AddString(Str);
sprintf(lpszText, "DHCP Enabled: %s", (pAdapter->DhcpEnabled ? "yes" : "no")); eAdaptersInfo.AddString(lpszText);
chAddr = &(pAdapter->IpAddressList); while(chAddr) { Str="IP Address: "; eAdaptersInfo.AddString(Str+chAddr->IpAddress.String);
Str="Subnet Mask: "; eAdaptersInfo.AddString(Str+chAddr->IpMask.String);
chAddr = chAddr->Next; }
Str="Default Gateway: "; eAdaptersInfo.AddString(Str+pAdapter->GatewayList.IpAddress.String);
chAddr = pAdapter->GatewayList.Next; while(chAddr) { //print next Gateway chAddr = chAddr->Next; }
Str="DHCP Server: "; eAdaptersInfo.AddString(Str+pAdapter->DhcpServer.IpAddress.String);
Str="Primary WINS Server: "; eAdaptersInfo.AddString(Str+pAdapter->PrimaryWinsServer.IpAddress.String);
Str="Secondary WINS Server: "; eAdaptersInfo.AddString(Str+pAdapter->SecondaryWinsServer.IpAddress.String);
eAdaptersInfo.AddString("==========================="); pAdapter = pAdapter->Next; } }
Общую информацию о сети можно получить с помощью функции GetNetworkParams. У нее два параметра: структура типа PFIXED_INFO и размер структуры.
Если первый параметр оставить нулевым, а в качестве второго указать числовую переменную, то в эту переменную запишется размер памяти, необходимый для структуры PFIXED_INFO. Именно это и делается первый раз. Память надо выделять в глобальной области с помощью функции GlobalAlloc, иначе функция может вернуть некорректные данные.
После этого функция GetNetworkParams вызывается еще раз, но с указанием двух параметров. Если результатом выполнения функции будет 0, то получение данных прошло успешно.