自分のマシンがインターネットにアクセスできるかどうかを C/C++ を使用してプログラムで確認するにはどうすればよいですか? IP に ping を実行するだけですか? NIC はどのようにそれを行うのですか? 私は次のようなことを意味します:
Windows 7 を使用しています。
自分のマシンがインターネットにアクセスできるかどうかを C/C++ を使用してプログラムで確認するにはどうすればよいですか? IP に ping を実行するだけですか? NIC はどのようにそれを行うのですか? 私は次のようなことを意味します:
Windows 7 を使用しています。
Windowsで作業している場合は、これを試してください
#include <iostream>
#include <windows.h>
#include <wininet.h>
using namespace std;
int main(){
if(InternetCheckConnection(L"http://www.google.com",FLAG_ICC_FORCE_CONNECTION,0))
{
cout << "connected to internet";
}
return 0;
}
私が思うにそのようなものは何もありませんが、これを試すことができます:
最も簡単な方法は、既知の外部 IP アドレスへの接続を試みることです。
Windows で失敗した場合、接続関数は を返しSOCKET_ERROR
、WSAGetLastError
通常は戻りますWSAEHOSTUNREACH
(パケットをホストに送信できなかったことを意味します)。
Linux では a が返され、-1
errno は になりますENETUNREACH
。いくつかの便利なリンク:
コードスニップhereを含む非常にスマートな方法が実際にあります。
基本的にはcmdオプションを使用します: CMD ヒット中: route print
.
これにより、ルーティング テーブルが配列にマップされ、利用可能なインターネット接続として 0.0.0.0 が検索されます。
私はそれを使用しましたwhile(true){//the code in here } //check for inet connection , else will sleep for 10 mins and check again