ganselo, Искал в Нете решение, набрёл на похожее, только на делфи. Пробовал сам, но запутался с
catch. Сейчас проверю.
Код:

var
connected: boolean;
begin
connected:=true;
//тут прописываем настройки idHTTP
try
idHTTP.Get('http://www.google.ru');
//в OnStatus можно прописать дисконнект на статусе "Connected", что б лишнего не качать
except
on e: exception do connected := false;
end;
if not connected then
ShowMessage('Нет инета')
else
ShowMessage('Есть инет');
end;
Там же нашёл консольный вариант и он рабочий.
Код:

#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#define ADDR "209.85.229.104"
#define PORT 80
#pragma comment(lib, "ws2_32.lib")
int main()
{
WSADATA wsaDATA;
SOCKET my_socket;
sockaddr_in server_addr;
int len_client_sock;
printf("Scanner address: %s!\n", ADDR);
if(WSAStartup(MAKEWORD(2,2), &wsaDATA) != NO_ERROR){
printf("Library WinSock not load!\n");
WSACleanup();
system("PAUSE");
return 1;
}
else
printf("Library WinSock load!");
my_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr(ADDR);
server_addr.sin_port = htons(PORT);
len_client_sock = sizeof(server_addr);
if(connect(my_socket, (sockaddr*)&server_addr, len_client_sock) != SOCKET_ERROR)
printf("\nInternet YES!\n");
else
printf("\nInternet NO!\n");
shutdown(my_socket, SD_BOTH);
closesocket(my_socket);
WSACleanup();
system("PAUSE");
return 0;
}