DNS服务器

推荐列表 站点导航

当前位置:首页 > 服务器技术 > DNS服务器 >

MacosxSetdns

来源:网络  作者:网友投稿  发布时间:2021-01-08 13:07
通过C语言接口在MacApp内部对系统的DNS配置进行修改。MacOSX设置DNS代码示例代码setDNS c内容如下: includeSystemConfigurati...

通过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 -f default: setDNS.c cc -o setDNS setDNS.c -framework Foundation -framework SystemConfiguration clean: rm setDNS

谢谢各位,欢迎交流并指正。

---- 大茶园丁@戴维营教育

https://github.com/DiveinEdu-CN

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/server/dns/11959.shtml

相关文章
最新文章
这样当下一次还有另外一 这样当下一次还有另外一

时间:2021-01-15

在常规设置中点选使用下 在常规设置中点选使用下

时间:2021-01-15

总结DNS处事器负载平衡设 总结DNS处事器负载平衡设

时间:2021-01-15

DNS缓存中毒进攻 DNS缓存中毒进攻

时间:2021-01-15

结果就是访问不到界面 结果就是访问不到界面

时间:2021-01-15

linux下DNS服务的搭建 linux下DNS服务的搭建

时间:2021-01-08

DNS详解(二) DNS详解(二)

时间:2021-01-08

Ubuntu14.04.2LTS配置DNSserver Ubuntu14.04.2LTS配置DNSserver

时间:2021-01-08

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

MacosxSetdns

2021-01-08 编辑:网友投稿

通过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 -f default: setDNS.c cc -o setDNS setDNS.c -framework Foundation -framework SystemConfiguration clean: rm setDNS

谢谢各位,欢迎交流并指正。

---- 大茶园丁@戴维营教育

https://github.com/DiveinEdu-CN

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/server/dns/11959.shtml

相关文章

风云图片

推荐阅读

返回DNS服务器频道首页