2011-05-31 13 views
6

Estoy tratando de obtener programáticamente la dirección IP del proxy o la URL establecida en un sistema.
He encontrado el código que podría trabajar en una pregunta anterior here, pero es en Objective-C y lo que estoy tratando de usar es normal C.Recuperando la dirección IP del Proxy Mac OS X

He intentado traducir ese código obj-c para C, pero sin éxito .

¿Alguien sabe cómo obtener el proxy del sistema en C?

Gracias

Respuesta

4

Ésta es una traducción del 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); 
} 

Se debe estar vinculada a dos marcos: SystemConfiguration y CoreFoundation.

Tenga en cuenta que este código obtiene la URL para la configuración del proxy automático (kSCPropNetProxiesProxyAutoConfigURLString), si corresponde. Hay varios otros posibles apoderados, p. Proxy HTTP o proxy HTTPS. Para obtener una lista de todos los posibles proxies, vea el SCSchemaDefinitions Reference.

+0

Gracias, déjame intentarlo. Sé cómo configurar la configuración automática del proxy, pero ¿cómo configuro el proxy HTTP? A través del navegador? La línea de comando? –

+0

@MrA A través de preferencias del sistema> Red> Avanzado ...> Proxies> Proxy web (HTTP). –