c - 检索 Mac OS X 代理 IP 地址

标签 c macos

我正在尝试以编程方式获取系统上设置的代理 IP 地址或 URL。
我在上一个问题中找到了可能有效的代码 here ,但它在 Objective-C 中,而我尝试使用的是纯 C。

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

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

谢谢

最佳答案

这是 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。

请注意,此代码获取自动代理配置的 URL (kSCPropNetProxiesProxyAutoConfigURLString),如果有的话。还有其他几种可能的代理,例如HTTP 代理或 HTTPS 代理。有关所有可能代理的列表,请参阅 SCSchemaDefinitions Reference .

关于c - 检索 Mac OS X 代理 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6192014/

相关文章:

c - 在 Fortran 和 C 之间传递字符串

c - 使用最多 10 个值初始化堆栈

objective-c - 获取关系对象

macos - 如何在 NSTextView 中禁用这些键盘快捷键?

c - 大型二维数组的段错误

Char 等于 C 中的 char 变量

c - C 数组的大小返回意外值

Mac OS 上的 Java swing GUI TrayMenu 问题

macos - 如何使用 CGImageMetadataRef?

java - Mac OS X 上 Java 7 中的慢速 Java2D 双线性插值