code: def FindProxies():
    
  
    sc = objc.SystemConfiguration()
  
    # Get the dictionary of network proxy settings
    settings = sc.dll.SCDynamicStoreCopyProxies(None)
    if not settings:
      return []
  
    try:
      cf_http_enabled = sc.CFDictRetrieve(settings, "kSCPropNetProxiesHTTPEnable")
      if cf_http_enabled and bool(sc.CFNumToInt32(cf_http_enabled)):
        # Proxy settings for HTTP are enabled
        cfproxy = sc.CFDictRetrieve(settings, "kSCPropNetProxiesHTTPProxy")
        cfport = sc.CFDictRetrieve(settings, "kSCPropNetProxiesHTTPPort")
        if cfproxy and cfport:
          proxy = sc.CFStringToPystring(cfproxy)
          port = sc.CFNumToInt32(cfport)
          return ["http://%s:%d/" % (proxy, port)]
  
      cf_auto_enabled = sc.CFDictRetrieve(
          settings, "kSCPropNetProxiesProxyAutoConfigEnable")
  
      if cf_auto_enabled and bool(sc.CFNumToInt32(cf_auto_enabled)):
        cfurl = sc.CFDictRetrieve(settings,
                                  "kSCPropNetProxiesProxyAutoConfigURLString")
        if cfurl:
          unused_url = sc.CFStringToPystring(cfurl)
          # TODO(amoser): Auto config is enabled, what is the plan here?
          # Basically, all we get is the URL of a javascript file. To get the
          # correct proxy for a given URL, browsers call a Javascript function
          # that returns the correct proxy URL. The question is now, do we really
          # want to start running downloaded js on the client?
          return []
  
    finally:
      sc.dll.CFRelease(settings)
    return []
docs: This reads the OSX system configuration and gets the proxies.