13

自分のマシンがインターネットにアクセスできるかどうかを C/C++ を使用してプログラムで確認するにはどうすればよいですか? IP に ping を実行するだけですか? NIC はどのようにそれを行うのですか? 私は次のようなことを意味します:

ここに画像の説明を入力

Windows 7 を使用しています。

4

6 に答える 6

12

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;
}
于 2013-04-03T04:46:51.643 に答える
4

私が思うにそのようなものは何もありませんが、これを試すことができます:

最も簡単な方法は、既知の外部 IP アドレスへの接続を試みることです。

Windows で失敗した場合、接続関数は を返しSOCKET_ERRORWSAGetLastError通常は戻りますWSAEHOSTUNREACH(パケットをホストに送信できなかったことを意味します)。

Linux では a が返され、-1errno は になりますENETUNREACH。いくつかの便利なリンク:

1. Windows ソケットへのリンク

2. Linux/Unix ソケットのリンク

于 2013-04-03T03:40:26.267 に答える
2

コードスニップ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

于 2015-02-23T12:25:52.843 に答える