ConvertLengthToIpv4Mask (), не уверен, что я правильно понял?

Я знаю, что нет никакой записи о том, что я делаю, но я уверен, что есть люди, которые знакомы с ConvertLengthToIpv4Mask(),

После того как я позвоню ConvertLengthToIpv4Mask() преобразовать OnLinkPrefixLength чтобы получить маску подсети.

ConvertLengthToIpv4Mask() дает мне какое-то странное число «16777215».

Это часть, которая не уверена, правильно ли я понял, странное число «16777215» — это ДЛИННОЕ представление сетевой части, когда я преобразовываю его в биты, оно дает мне «111111111111111111111111», затем я делю его на части по 8 бит, и результат, который я получаю «255 255 255»

Небольшая часть кода:

PIP_ADAPTER_ADDRESSES pCurrAddresses = NULL;
PIP_ADAPTER_UNICAST_ADDRESS pUnicast = NULL;
ULONG subnet = 0;
PULONG mask = &subnet;
pUnicast = pCurrAddresses->FirstUnicastAddress;

if (pUnicast != NULL)
{
for (i = 0; pUnicast != NULL; i++)
{
struct sockaddr_in  *sockaddr_ipv4;
sockaddr_ipv4 = (struct sockaddr_in *)pUnicast->Address.lpSockaddr;
printf("IPv4 pUnicast %s \n", inet_ntoa(sockaddr_ipv4->sin_addr));

ConvertLengthToIpv4Mask(pUnicast->OnLinkPrefixLength, mask);

pUnicast = pUnicast->Next;
}
}

Хорошо, мой вопрос, я правильно понял?

Если нет?
Любой намек был бы великолепен?

Спасибо 🙂

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]