API Notes: SystemConfiguration framework

The full API is described in Apple’s documentation, both the C and Objective-C APIs are available (but see the API Notes below).

These bindings are accessed through the SystemConfiguration package (that is, import SystemConfiguration).

API Notes


There are several APIs that have a callback function and context structure in the (Objective-)C API. In all cases an arbitrary object can be passed as the context, PyObjC will wrap that in the proper context structure for you.


The context argument for SCDynamicStoreCreate is an arbitrary python object, not a SCDynamicStoreContext structure as it is in C. The bridge will manage that context structure for you.


The address argument should have a value that can also be used with the Python socket APIs (that is, a (host, port) tuple for IPv4 addresses or (host, port, flowinfo, scopeid) tuple for IPv6 addresses).

The addrlen argument should be objc._size_sockaddr_ip4 for IPv4 addresses and _size_sockaddr_ip6 for IPv6 addresses.