获取 Mac OS X 代理 IP 地址

6
我试图以编程方式获取系统上设置的代理IP地址或URL。
我在之前的一个问题中找到了一些可能起作用的代码,但它是用Objective-C编写的,而我想使用的是纯C。

我尝试将obj-c代码翻译成C,但没有成功。

有人知道如何在C中获取系统代理吗?

谢谢

1个回答

4

这是一个关于it技术的问题的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参考文献


谢谢,让我试试。我知道如何设置自动代理配置,但是如何设置HTTP代理?通过浏览器?通过命令行? - Mr Aleph
@MrA 通过系统偏好设置 > 网络 > 高级… > 代理 > Web代理(HTTP)。 - user557219

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接