Windows のgetiftable()関数を探しているかもしれません。特定のネットワーク インターフェイスに関連するすべての情報を提供する winapi 関数です。
これがその良い例です
全体の構造の説明はこちら
msdnによると
dwLastChange
Type: DWORD
The length of time, in hundredths of seconds (10^-2 sec), starting from the last computer restart, when the interface entered its current operational state.
接続すると、接続状態からの時間が表示されます。
これは、c# でのこの関数の宣言です。
public static extern uint GetIfTable(IntPtr pIfTable, ref uint pdwSize, bool bOrder);
Declare Function GetIfTable Lib "iphlpapi.dll" (TODO) As TODO
IPHelperTraslation.GetIfTable(IntPtr.Zero, ref size, false);
IPHelperTraslation.GetIfTable(buf, ref size, false);
宣言の詳細については、 pinvoke.netを使用できます。
.Net フレームワークには簡単な方法があるようですが、期待どおりではありません
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.operationalstatus.aspx
彼らがネットワーク ステータス検出をどのように実装したかを確認してください。私の推測では、ステータスが最後に変更されてからの時間をアプリケーションに記録する必要があります。
getifrow 関数も実際にテストしましたが、残念なことに、Win7 では常にゼロを返します。他のプラットフォームについては知りません。