我正在尝试以编程方式获取系统上的代理IP地址或URL 我找到了可能在上一个问题here中工作的代码,但是它在Objective-C中,我想要使用的是纯C。
我尝试将该obj-c代码翻译成C但没有成功。
任何人都知道如何在C中获取系统代理?
谢谢
答案 0 :(得分:4)
这是that answer的C语言翻译:
CFDictionaryRef proxies = SCDynamicStoreCopyProxies(NULL);
if (proxies) {
CFStringRef pacURL = (CFStringRef)CFDictionaryGetValue(proxies,
kSCPropNetProxiesProxyAutoConfigURLString);
if (pacURL) {
char url[257] = {};
CFStringGetCString(pacURL, url, sizeof url, kCFStringEncodingASCII);
// do something with url
}
CFRelease(proxies);
}
它需要链接到两个框架:SystemConfiguration和CoreFoundation。
请注意,此代码获取自动代理配置(kSCPropNetProxiesProxyAutoConfigURLString
)的URL(如果有)。还有其他几种可能的代理,例如HTTP代理或HTTPS代理。有关所有可能代理的列表,请参阅SCSchemaDefinitions Reference。