netstat -r lookup the routine table ネットワーク接続しにいかずに、ネットワーク接続状態の取得について 現時点の調べによって 使うFramework: System Configuration Framewok 使うAPI: The Dynamic Store API http://developer.apple.com/documentation/Networking/Conceptual/SystemConfigFrameworks/SC_Components/chapter_3_section_3.html#//apple_ref/doc/uid/TP40001065-CH207-CHDDDCHG The Dynamic Store はネットワーク接続状態を保存しています。ネットワーク接続状態を変わるとその対応のdynamic store keyの値を更新されます。Dynamic Store APIで System Configuration schemaを通じて、そのキーの値を監視して、接続状態の変化を取得できます。 ターミナールの中にシステム設定を管理するコマンド「scutil」を使ってみたら、dynamic store keyを見れます。 例えば: ------------------------------------------------------------------------------------- $ scutil > list subKey [0] = DirectoryService:PID subKey [1] = Plugin:IPConfiguration subKey [2] = Setup: subKey [3] = Setup:/ subKey [4] = Setup:/Network/Global/IPv4 subKey [5] = Setup:/Network/HostNames ...... subKey [37] = State:/Network/Interface/en0/IPv4 subKey [38] = State:/Network/Interface/en0/IPv6 subKey [39] = State:/Network/Interface/en0/Link subKey [40] = State:/Network/Interface/en1/AirPort ...... さらに、「show」を使って、キーの値がわかります。下の例はランケーブルを接続している状態(TRUE)を示しています。 > show State:/Network/Interface/en0/Link <dictionary> { Active : TRUE } ------------------------------------------------------------ 今まで、試してみたのはランケーブルを接続しないの検出とシステム環境設定->ネットワーク->IPv4に「切」を設定する場合の検出です。 |