RSS

Tag Archives: setsocksfirewallproxystate

Mac OS X中通过程序修改系统网络设置的proxies

希望在Mac OS X中通过SSH代理上网的朋友请查看Mac OS X中使用SSH连接Dreamhost建立SOCKS代理上网。本文仅探讨通过程序(Objective-C或者Shell)修改设置中的代理选项。

遇到的问题:
在Mac OS X中,希望通过程序修改System Preferences->Network->AirPort->Advanced->Proxies->SOCKS Proxy的勾选或者说是SOCKSEnable的状态。

解决方案:
使用命令行工具/ usr/sbin/networksetup,networksetup -setsocksfirewallproxystate “AirPort” “on” 即可启用AirPort的SOCKS Proxy,networksetup -setsocksfirewallproxy “AirPort” “127.0.0.1″ “7070″ 即可修改AirPort的SOCKS Proxy Server为127.0.0.1,端口为7070,同时启用SOCKS Proxy。
知道networksetup之后,再通过NSTask执行上述的命令相信大家都会,就不再赘述了。
当然,networksetup实际上是非常强大的,想要了解更多networksetup的用法请查看networksetup Mac OS X的Manual Page

至于通过SystemConfiguration Framework和Security Framework的Authorization来修改Mac OS X的网络设置,目前SCDynamicStoreSetNotificationKeys是可以监测网络设置的变动,但是即使AuthorizationCopyRights成功之后,SCDynamicStoreSetValue依然失败,会返回如下信息:
Error Domain=com.apple.SystemConfiguration Code=1003 “The operation couldn’t be completed. (com.apple.SystemConfiguration error 1003 – Permission denied)” UserInfo=….{NSDescription=Permission denied}“ 。
如果之后有时间回头再看看SystemConfiguration Framework和Security Framework,并解决了这个问题,我也会更新在这里的。

详情如下: 查看全文 »


 
2 Comments

Posted by on 一月 5, 2012 in Mac OS, Objective-C

 

Tags: , , , , , , , , ,