如何在osx上以编程方式编辑/ etc / hosts文件

时间:2014-10-24 09:09:36

标签: objective-c linux macos

我希望限制某些网站以便在osx上开放。我可以通过终端命令来完成:

sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts

然后我们可以轻松编辑和保存这个文件。我们可以编写本地IP和网站名称,将此网站限制为192.0.0.1 www.youtube.com。 我想以编程方式进行,我尝试如下:

system("echo \"192.0.0.1 www.facebook.com\" >> /etc/hosts");
此应用程序具有root权限仍然无法附加它并显示权限被拒绝消息。 任何人都可以告诉我这是什么问题,或者有没有其他方法来编辑这个文件/ etc / hosts

1 个答案:

答案 0 :(得分:-1)

使用Apple Script,您可以这样做。

do shell script "sudo echo '192.0.0.1 www.facebook.com' >> /etc/hosts" with administrator privileges

从Objective-C开始,您应该使用NSTask来运行shell命令。请参阅these two个答案。

您可以使用NSFileHandle本机写入文件,而不是使用shell脚本。 要了解所有可能性,请查看Apple's Authorization Services Programming Guide