2011-11-08 4 views
2

私はmac os x programmingの新人で、設定に基づいてワイヤレスアダプターまたは有線アダプターのいずれかを無効にする小さなユーティリティーを書くという割り当てを得ました。私は以下のようなcorewlanフレームワークを使って無線を切断することができました:mac os xでイーサネットアダプタをプログラムで無効/切断する方法はありますか?

CWInterface interface = [CWInterface interfaceWithName:@"en1"]; 
BOOL result = [interface setPower:NO error:&err]; 

期待どおり動作しています。イーサネットアダプタを無効/切断するには、同様のコードが必要です。

sudo ifconfig en0 down 

が、それは管理者パスワードを要求し、私はしたくないこと:私はifconfigコマンド(後述するように使用することができます)ことを研究しました。ルートパスワードなしでイーサネットアダプタを無効にする代わりにプログラム的な方法を提案してください。

私はそれを読むSCNetworkConfigurationは使用できますが、使用方法はわかりません。助けてください。

おかげ

+0

代替コマンドです(悲しいことに、これには管理者パスワードが必要です)。 'はnetworksetup -setnetworkserviceenabledイーサネットon'の 私はここからそれを得た:ためhttps://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/networksetup.8.html – thandasoru

答えて

0

あなたが管理者権限を持たずにネットワークインターフェイスを遮断することはできません(すなわち、南京錠は、ネットワーク環境設定パネルであり、なぜだと)。このように考えてみてください...任意の公共のマシン上の管理者以外のユーザーは、ネットワークを任意にオフにすることはできません。

イーサネット& WiFiも無効にしている自分のアプリでは、SystemConfigurationフレームワークから管理者のものを実行するために、別のツールを起動する権限を取得する必要があります。

+0

感謝を回答。だから今ここでさらに2つの質問が来る:1)アップルはrootユーザーのパスワードが必要なアプリを承認していますか? (私は恐れるので)2)特権の方法でコードを実行するための例(リンゴの受け入れ方法)は私にとって大きな助けになるでしょう。 SystemConfiguration frmeworkを介してadminとして実行します。 –

+0

質問:#1への回答は「いいえ」です。なぜなら、Apple App Storeや[Sandboxing](http://developer.apple.com/devcenter/mac/app-japan/)サンドボックス/)は管理者特権を持つことはできません。 [あなたのアプリケーションがサンドボックスに適しているかどうかを判断する]セクション(http://developer.apple.com/library/mac/#documentation/Security/Conceptual/AppSandboxDesignGuide/DesigningYourSandbox/DesigningYourSandbox.html#//apple_ref/doc/)を参照してください。 uid/TP40011183-CH4-SW6)。私のアプリケーションでは、ipfwの使用を検討していますが、これはユーザレベルのアプリケーションでも問題ありません。 –

+0

説明をいただきありがとうございます。あなたの助けを感謝しました。 –

関連する問題