Автор
|
Тема: Как узнать в online компьютер или нет?
|
Agent |
опубликован 26-12-2001 14:56 MSK
Сабж собственно, нужно что-то по типу ICQ NetDetect.
|
Flex Ferrum
|
опубликован 26-12-2001 15:05 MSK
Попробуй просто подключиться к какому-нибудь хосту отличному от 127.0.0.1. |
Agent
|
опубликован 26-12-2001 20:47 MSK
Да, но в этом случае я выдаю себя фаерволу, что не желательно.Мне требуется как можно более компактный код, желательно без использования сокетов. За совет спасибо, но вопрос остается. |
Pashax86
|
опубликован 27-12-2001 01:42 MSK
Platform SDK: RAS/Routing and RAS ************************************** lpRasConn = (LPRASCONN) GlobalAlloc(GPTR, sizeof(RASCONN)); lpRasConn->dwSize = sizeof(RASCONN); nRet = RasEnumConnections(lpRasConn, &lpcb, &lpcConnections); if (nRet != 0) { printf("RasEnumConnections failed: Error = %d", nRet); } else { printf("The following RAS connections are currently active\n\n"); for (i = 0; i < lpcConnections; i++) { printf("Entry name: %s\n", lpRasConn->szEntryName); lpRasConn++; } } Requirements Windows NT/2000: Requires Windows NT 3.1 or later. Windows 95/98: Requires Windows 95 or later. Header: Declared in Ras.h. Library: Use Rasapi32.lib. Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000. |
Agent
|
опубликован 27-12-2001 00:07 MSK
Всем спасибо.Я нашел вот такой код, на мой взгляд он самый удобный. function InternetGetConnectedState(var dwFlags: DWORD; dwReserved: DWORD): BOOL; stdcall; external 'wininet.dll' name 'InternetGetConnectedState'; function IsItOnLine: boolean; var dwFlags: DWORD; begin Result:=InternetGetConnectedState(dwFlags, 0); end; |
Unregistered
|
опубликован 26-01-2001 15:26 MSK
В локальной сети на Win 98 (незнаю как NT)такой код может дать неправильный ответ. Просто выдерни кабель и запусти свою прогу и она скажет, что все нормально. Система узнает, что комп не в сети только через некоторе время. |
ADK
|
опубликован 28-01-2001 07:24 MSK
Я тоже не в восторге от InternetGetConnectedState. Он часто лажается. |