Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Как узнать установлен ли IP-протокол?


Автор: Lexicss 22.4.2008, 15:49
Работаю на Winsock2.
При запуске программы необходимо определить установлен ли протокол  IP на компьютере.
Т.е. что был выбор работать на  UDP/IP или NetBEUI

Я пока придумал так: 
после инициализации сокета и Ip-адреса
Код

...
if SendTo(sock,testBuff,sizeOf(testBuff),0,AddrTo,sizeOf(AddrTo)) = SOCKET_ERROR
then ...  // значит не установлен IP
else ...  // всё норма. IP-протокол  установлен


Однако при таком способе приходится слать  данные и забивать канал.

Какие ещё есть способы более разумные?

Автор: dumb 23.4.2008, 05:18
http://msdn2.microsoft.com/en-us/library/ms737823.aspx

Автор: Lexicss 25.4.2008, 08:48
Спасибо. Использую щас WSAEnumProtocols.
Правда что пока так окончательно и не разобрался. Выдаёт в буффере по 44 протокола, на другом по компьютере 40. Но что пока самое странное, если отключаю в сетеыом откружении использование каких-либо протоколов, то результаты функции не меняются. 
Например - выдаёт что обнаружено 44 протокола: из них 4 TCP, 4 UDP и 36 - остальные. Есл ив сетевом окружении отключаю галочку использования даже всех протоколов - то результаты не изменяются. Т.е. функция показывает чисто установленные протоколы, а не рабочие...

Автор: dumb 26.4.2008, 03:42
насчет привязки к интерфейсам навскидку функций не помню, а в реестре можно пошерстить параметры:
HKLM\SYSTEM\CurrentControlSet\Control\Network
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage

Автор: Lexicss 1.5.2008, 11:10
Походу все параметры там не те что мне надо :/ 
Ладно, спасибо, поищу ещё что-нибудь другое.

Автор: dumb 1.5.2008, 15:18
Цитата(Lexicss @  1.5.2008,  12:10 Найти цитируемый пост)
Походу все параметры там не те что мне надо
а что тебе надо? smile
в параметре Bind ветки Tcpip\Linkage перечислены интерфейсы, к которым привязан tcp/ip. получить из guid'ов привычные имена можно через ветку Control\Network.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)