Macosx Setdns
来源:互联网 发布:非线性优化的优缺点 编辑:程序博客网 时间:2024/05/22 01:54
通过C语言接口在Mac App内部对系统的DNS配置进行修改。
Mac OS X设置DNS代码
示例代码setDNS.c内容如下:
#include <SystemConfiguration/SystemConfiguration.h>static bool setDNS(CFStringRef *resolvers, CFIndex resolvers_count){ SCDynamicStoreRef ds = SCDynamicStoreCreate(NULL, CFSTR("setDNS"), NULL, NULL); CFArrayRef array = CFArrayCreate(NULL, (const void **) resolvers, resolvers_count, &kCFTypeArrayCallBacks); CFDictionaryRef dict = CFDictionaryCreate(NULL, (const void **) (CFStringRef []) { CFSTR("ServerAddresses") }, (const void **) &array, 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); CFArrayRef list = SCDynamicStoreCopyKeyList(ds, CFSTR("State:/Network/(Service/.+|Global)/DNS")); CFIndex i = 0, j = CFArrayGetCount(list); if (j <= 0) { return FALSE; } bool ret = TRUE; while (i < j) { ret &= SCDynamicStoreSetValue(ds, CFArrayGetValueAtIndex(list, i), dict); i++; } return ret;}int main(int argc, const char * argv[]){ CFStringRef resolvers[] = { CFSTR("8.8.8.8"), CFSTR("114.114.114.114") }; setDNS(resolvers, (CFIndex) (sizeof resolvers / sizeof resolvers[0])); return 0;}
对应的Makefile文件内容:
#!/usr/bin/make -fdefault: setDNS.c cc -o setDNS setDNS.c -framework Foundation -framework SystemConfigurationclean: rm setDNS
谢谢各位,欢迎交流并指正。
---- 大茶园丁@戴维营教育
http://io.diveinedu.com
http://www.diveinedu.com
https://github.com/DiveinEdu-CN
0 0
- Macosx Setdns
- Macosx Setdns
- macosx & ios
- macOSX 实用技巧
- macosx 工具合集
- MacOSX/Ubuntu双系统安装
- macosx 快捷键 大全
- MacOSX 安装ffmpeg
- macosx 上安装lua
- MacOSX 10.10 Pyqt4&Eric4
- Firebird Database On MacOSX
- VMWare安装MacOSX系统
- ILSpy For MacOsX
- MacOSX apache 无法访问服务器
- macosx 下光盘操作
- MacOSX启动SSH服务
- MACOSX 网络诊断命令
- MACOSX安装mariadb
- 关于Https 和 http 的区别
- App Store官方的邮箱列表
- 跟踪分析Linux内核的启动过程(从start_kernel到init进程)
- PHP开发学习门户第三版UI正式上线
- ELK(Elasticsearch,logstash,kibana)无痛安装教程
- Macosx Setdns
- QT笔记整理
- RTOS的精确延时功能扩展
- 用 Java 实现断点续传 (HTTP)
- Emacs常用快捷键笔记
- 【考据】“烫烫烫”与“锟斤拷”的原理
- 程序员如何在技术上提升自己
- 为mac自带的emacs添加ruby模式
- SecureCRT 5.2.2的注册码