Vérifier par programme si ma machine a un access Internet ou non

Comment puis-je vérifier par programme si ma machine a un access Internet ou n’utilise pas le C / C ++, s’agit-il simplement d’une requête ping sur une adresse IP? Comment NIC le fait-il? Je veux dire quelque chose comme:

entrez la description de l'image ici

J’utilise Windows 7.

Si vous travaillez sous Windows, essayez ceci

 #include  #include  #include  using namespace std; int main(){ if(InternetCheckConnection(L"http://www.google.com",FLAG_ICC_FORCE_CONNECTION,0)) { cout << "connected to internet"; } return 0; } 

Je pense qu’il n’y a rien de ce genre, mais vous pouvez essayer ceci:

Le moyen le plus simple consiste à essayer de se connecter à une adresse IP extérieure connue.

En cas d’échec sous Windows, la fonction de connexion renvoie SOCKET_ERROR et WSAGetLastError généralement WSAEHOSTUNREACH (ce qui signifie que le paquet n’a pas pu être envoyé à l’hôte).

Sous Linux, vous obtenez -1 , et errno est ENETUNREACH . Quelques liens utiles:

1. Lien pour Windows Sockets

2. Lien pour les sockets Linux / Unix

En plus de la fonction InternetCheckConnection (), l’API Win32 dispose d’une fonction ( InternetGetConnectedState () ) qui renvoie un true / false pour (la disponibilité de) une certaine forme de connectivité Internet:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa384702(v=vs.85).aspx

Il vous indique également quel type de connexion à Internet vous avez (réseau local, modem, proxy, etc.) – ce qui peut souvent être très pratique.

Il existe en fait un moyen très intelligent, y compris le code snip ici .

En gros, il utilise l’option cmd : En mode CMD, tapez: route print .

Cela mappera la table de routage avec un tableau et cherchera 0.0.0.0 comme connexion Internet disponible.

Je l’ai utilisé avec un while(true){//the code in here } //check for inet connection , else will sleep for 10 mins and check again

Le code suivant fonctionnera si vous êtes sur Windows:

 #include  #include  int main(){ if (system("ping www.google.com")){ std::cout<<"\nNot connnected to the internet\n\n"; } else{ std::cout<<"\nConnected to the internet\n\n"; } system("pause"); return 0; }