Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Функция GetNetworkParams.

Функция GetNetworkParams позволяет узнать сетевые настройки локального компьютера.

Внимание: Для использования этой функции необходимо, чтобы был установлен Platform SDK!

DWORD GetNetworkParams(
   PFIXED_INFO pFixedInfo,
   PULONG pOutBufLen
 );
 

Параметры

pFixedInfo
Указатель на структуру FIXED_INFO в которой после вызова функции будут находиться сетевые настройки локального компьютера.
pOutBufLen
Указатель на переменную ULONG которая содержит размер структуры FIXED_INFO. Если размер недостаточен для хранения информации, то GetNetworkParams возвращает в этой переменной требуемый размер, а так же возвращает код ошибки ERROR_BUFFER_OVERFLOW.

Возвращаемое значение

В случае успеха, функция должна вернуть ERROR_SUCCESS.

В случае ошибки, функция вернёт одно из следующих значений.

 

Значение Описание
ERROR_BUFFER_OVERFLOW Размер буфера, указанный в переменной pOutBufLen недостаточен для хранения информации. Параметр pOutBufLen указывает на требуемый размер.
ERROR_INVALID_PARAMETER Параметр pOutBufLen равен NULL, либо вызывающий процесс не имеет прав на запись/чтение в памяти по адресу pOutBufLen, либо вызывающий процесс не имеет прав на запись в памяти по адресу pAdapterInfo.
ERROR_NO_DATA Функции не удалось получить информацию.
ERROR_NOT_SUPPORTED GetNetworkParams не поддерживается данной операционной системой.
другое В случае ошибки, воспользуйтесь функцией FormatMessage для получения подробной строки об ошибке.


Пример использования функции

//
 // Не забудьте подключить к проекту IPHlpAPI.lib
 //
 #include <stdio.h>
 #include <windows.h>
 #include <iphlpapi.h>
 
 main() {
 
    FIXED_INFO * FixedInfo;
    ULONG    ulOutBufLen;
    DWORD    dwRetVal;
    IP_ADDR_STRING * pIPAddr;
 
    FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, sizeof( FIXED_INFO ) );
    ulOutBufLen = sizeof( FIXED_INFO );
 
    if(ERROR_BUFFER_OVERFLOW == GetNetworkParams(FixedInfo, &ulOutBufLen)) {
       GlobalFree( FixedInfo );
       FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, ulOutBufLen );
    }
 
    if ( dwRetVal = GetNetworkParams( FixedInfo, &ulOutBufLen ) ) {
      printf( "GetNetworkParams failed. Return Value: %08x\n", dwRetVal);
    }
    else {
       printf( "Host Name: %s\n", FixedInfo -> HostName );
       printf( "Domain Name: %s\n", FixedInfo -> DomainName );
 
       printf( "DNS Servers:\n" );
       printf( "\t%s\n", FixedInfo -> DnsServerList.IpAddress.String );
 
       pIPAddr = FixedInfo -> DnsServerList.Next;
       while ( pIPAddr ) {
          printf( "\t%s\n", pIPAddr ->IpAddress.String );
          pIPAddr = pIPAddr ->Next;
       }
    }
    exit( 0 );
 }

Дополнительная информация

Windows NT/2000/XP: Включена в Windows 2000 и выше.
Windows 95/98/Me: Включена в Windows 98 и выше.
Заголовок: Объявлена в Iphlpapi.h.
Библиотека: Iphlpapi.lib.

 



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS