Windows コンピューターがインターネットに接続されているかどうかを C++ プログラムで判断する必要があります。Vista 以降では IsInternetConnected() 関数があり、期待どおりに動作します。XP の場合、 http://msdn.microsoft.com/en-us/library/ms700657(v=vs.85).aspxで説明されているように、WSALookupServiceNext() で _NLA_BLOB を取得することで可能になるはず です。
ただし、Windows 7 で実行すると、NLA_CONNECTIVITY (物理および vmware 仮想 NIC の場合) タイプのブロブがいくつか返され、一部は NLA_INTERNET_YES で、一部は NLA_INTERNET_NO で返されます。Windows XP で実行すると、そのようなブロブはまったくありません。XPでこのように動作する必要があり、何か間違ったことをしているのですか、それとも他のアプローチを探す必要がありますか? それが唯一の方法でない限り、既知のサイトにpingを送信したくない.
ps - 最終的に、少なくとも XP では ping を実行することにしました。