检索Mac OS X代理IP地址

问题描述

| 我正在尝试以编程方式获取系统上设置的代理IP地址或URL。 我在这里找到了可能在上一个问题中可用的代码,但是它在Objective-C中,而我尝试使用的是纯C。 我尝试将obj-c代码转换为C,但没有成功。 有谁知道如何在C中获得系统代理? 谢谢     

解决方法

        这是该答案的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。 请注意,此代码获取用于自动代理配置的URL(
kSCPropNetProxiesProxyAutoConfigURLString
)(如果有)。还有其他几种可能的代理,例如HTTP代理或HTTPS代理。有关所有可能的代理的列表,请参见《 SCSchemaDefinitions参考》。