<!--
{
  "documentType" : "article",
  "framework" : "SystemConfiguration",
  "identifier" : "/documentation/SystemConfiguration/scnetworkconfiguration",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "SCNetworkConfiguration"
}
-->

# SCNetworkConfiguration

## Overview

The `SCNetworkConfiguration` programming interface provides access to the stored network configuration. The functions include providing access to the network-capable devices on the system, the network sets, network services, and network protocols. Note that these functions follow Core Foundation function-name conventions. A function that has “Create” or “Copy” in its name returns a reference you must release with the <doc://com.apple.documentation/documentation/CoreFoundation/CFRelease> function.

Note that when using the functions in this programming interface, you must call the [`SCPreferencesCommitChanges(_:)`](/documentation/SystemConfiguration/SCPreferencesCommitChanges(_:)) function to ensure that your changes are committed to permanent storage.

## Topics

### Configuring Ethernet Bond Interfaces

[`SCBondInterfaceCopyAll`](/documentation/SystemConfiguration/SCBondInterfaceCopyAll(_:))

Returns all Ethernet bond interfaces on the system.

[`SCBondInterfaceCopyAvailableMemberInterfaces`](/documentation/SystemConfiguration/SCBondInterfaceCopyAvailableMemberInterfaces(_:))

Returns all network capable devices on the system that can be added to an Ethernet bond interface.

[`SCBondInterfaceCopyStatus`](/documentation/SystemConfiguration/SCBondInterfaceCopyStatus(_:))

Returns the status of the specified Ethernet bond interface.

[`SCBondInterfaceCreate`](/documentation/SystemConfiguration/SCBondInterfaceCreate(_:))

Creates a new Ethernet bond interface.

[`SCBondInterfaceGetMemberInterfaces`](/documentation/SystemConfiguration/SCBondInterfaceGetMemberInterfaces(_:))

Returns the member interfaces for the specified Ethernet bond interface.

[`SCBondInterfaceGetOptions`](/documentation/SystemConfiguration/SCBondInterfaceGetOptions(_:))

Returns the configuration settings associated with the specified Ethernet bond interface.

[`SCBondInterfaceRemove`](/documentation/SystemConfiguration/SCBondInterfaceRemove(_:))

Removes the Ethernet bond interface from the configuration.

[`SCBondInterfaceSetLocalizedDisplayName`](/documentation/SystemConfiguration/SCBondInterfaceSetLocalizedDisplayName(_:_:))

Sets the localized display name for the specified Ethernet bond interface.

[`SCBondInterfaceSetMemberInterfaces`](/documentation/SystemConfiguration/SCBondInterfaceSetMemberInterfaces(_:_:))

Sets the member interfaces for the specified Ethernet bond interface.

[`SCBondInterfaceSetOptions`](/documentation/SystemConfiguration/SCBondInterfaceSetOptions(_:_:))

Sets the configuration settings for the specified Ethernet bond interface.

[`SCBondStatusGetInterfaceStatus`](/documentation/SystemConfiguration/SCBondStatusGetInterfaceStatus(_:_:))

Returns the status of the specified member interface of an Ethernet bond or the status of the bond as a whole.

[`SCBondStatusGetMemberInterfaces`](/documentation/SystemConfiguration/SCBondStatusGetMemberInterfaces(_:))

Returns the member interfaces that are represented with the Ethernet bond interface.

[`SCBondStatusGetTypeID`](/documentation/SystemConfiguration/SCBondStatusGetTypeID())

Returns the type identifier of all `SCBondStatusRef` instances.

### Configuring Network Interfaces

[`SCNetworkInterfaceCopyAll`](/documentation/SystemConfiguration/SCNetworkInterfaceCopyAll())

Returns all network-capable interfaces on the system.

[`SCNetworkInterfaceCopyMTU`](/documentation/SystemConfiguration/SCNetworkInterfaceCopyMTU(_:_:_:_:))

Returns the current MTU setting and the range of allowable values for the specified network interface.

[`SCNetworkInterfaceCopyMediaOptions`](/documentation/SystemConfiguration/SCNetworkInterfaceCopyMediaOptions(_:_:_:_:_:))

Returns information media options for the specified network interface.

[`SCNetworkInterfaceCopyMediaSubTypeOptions`](/documentation/SystemConfiguration/SCNetworkInterfaceCopyMediaSubTypeOptions(_:_:))

Returns a list of available media options for the specified interface configuration options and subtype.

[`SCNetworkInterfaceCopyMediaSubTypes`](/documentation/SystemConfiguration/SCNetworkInterfaceCopyMediaSubTypes(_:))

Returns a list of available media subtypes for the specified interface configuration options.

[`SCNetworkInterfaceCreateWithInterface`](/documentation/SystemConfiguration/SCNetworkInterfaceCreateWithInterface(_:_:))

Creates a new network interface layered on top of the specified interface.

[`SCNetworkInterfaceForceConfigurationRefresh`](/documentation/SystemConfiguration/SCNetworkInterfaceForceConfigurationRefresh(_:))

Sends a notification to interested network configuration agents to immediately retry their configuration.

[`SCNetworkInterfaceGetBSDName`](/documentation/SystemConfiguration/SCNetworkInterfaceGetBSDName(_:))

Returns the BSD interface or device name for the specified interface.

[`SCNetworkInterfaceGetConfiguration`](/documentation/SystemConfiguration/SCNetworkInterfaceGetConfiguration(_:))

Returns the configuration settings associated with the specified interface.

[`SCNetworkInterfaceGetExtendedConfiguration`](/documentation/SystemConfiguration/SCNetworkInterfaceGetExtendedConfiguration(_:_:))

Returns the extended configuration settings associated with the specified interface.

[`SCNetworkInterfaceGetHardwareAddressString`](/documentation/SystemConfiguration/SCNetworkInterfaceGetHardwareAddressString(_:))

Returns a displayable link layer address for the specified interface.

[`SCNetworkInterfaceGetInterface`](/documentation/SystemConfiguration/SCNetworkInterfaceGetInterface(_:))

Returns the underlying interface, for layered network interfaces.

[`SCNetworkInterfaceGetInterfaceType`](/documentation/SystemConfiguration/SCNetworkInterfaceGetInterfaceType(_:))

Returns the network interface type of the specified interface.

[`SCNetworkInterfaceGetLocalizedDisplayName`](/documentation/SystemConfiguration/SCNetworkInterfaceGetLocalizedDisplayName(_:))

Returns the localized display name, such as “Ethernet” or “FireWire”, for the specified interface.

[`SCNetworkInterfaceGetSupportedInterfaceTypes`](/documentation/SystemConfiguration/SCNetworkInterfaceGetSupportedInterfaceTypes(_:))

Identifies all of the network interface types, such as PPP, that can be layered on top of the specified interface.

[`SCNetworkInterfaceGetSupportedProtocolTypes`](/documentation/SystemConfiguration/SCNetworkInterfaceGetSupportedProtocolTypes(_:))

Identifies all of the network protocol types, such as IPv4 and IPv6, that can be layered on top of the specified interface.

[`SCNetworkInterfaceGetTypeID`](/documentation/SystemConfiguration/SCNetworkInterfaceGetTypeID())

Returns the type identifier of all `SCNetworkInterface` instances.

[`SCNetworkInterfaceSetConfiguration`](/documentation/SystemConfiguration/SCNetworkInterfaceSetConfiguration(_:_:))

Stores the configuration settings for the specified interface.

[`SCNetworkInterfaceSetExtendedConfiguration`](/documentation/SystemConfiguration/SCNetworkInterfaceSetExtendedConfiguration(_:_:_:))

Stores the extended configuration settings for the specified interface.

[`SCNetworkInterfaceSetMTU`](/documentation/SystemConfiguration/SCNetworkInterfaceSetMTU(_:_:))

Sets the requested MTU setting for the specified network interface.

[`SCNetworkInterfaceSetMediaOptions`](/documentation/SystemConfiguration/SCNetworkInterfaceSetMediaOptions(_:_:_:))

Sets the requested media subtype and options for the specified network interface.

### Configuring Network Protocols

[`SCNetworkProtocolGetConfiguration`](/documentation/SystemConfiguration/SCNetworkProtocolGetConfiguration(_:))

Returns the configuration settings associated with the specified protocol.

[`SCNetworkProtocolGetEnabled`](/documentation/SystemConfiguration/SCNetworkProtocolGetEnabled(_:))

Returns a Boolean value indicating whether the specified protocol is enabled.

[`SCNetworkProtocolGetProtocolType`](/documentation/SystemConfiguration/SCNetworkProtocolGetProtocolType(_:))

Returns the type of the specified network protocol.

[`SCNetworkProtocolGetTypeID`](/documentation/SystemConfiguration/SCNetworkProtocolGetTypeID())

Returns the type identifier of all `SCNetworkProtocol` instances.

[`SCNetworkProtocolSetConfiguration`](/documentation/SystemConfiguration/SCNetworkProtocolSetConfiguration(_:_:))

Stores the configuration settings for the specified network protocol.

[`SCNetworkProtocolSetEnabled`](/documentation/SystemConfiguration/SCNetworkProtocolSetEnabled(_:_:))

Enables or disables the specified protocol.

### Configuring Network Services

[`SCNetworkServiceAddProtocolType`](/documentation/SystemConfiguration/SCNetworkServiceAddProtocolType(_:_:))

Adds the network protocol of the specified type to the specified service.

[`SCNetworkServiceCopy`](/documentation/SystemConfiguration/SCNetworkServiceCopy(_:_:))

Returns the network service with the specified identifier.

[`SCNetworkServiceCopyAll`](/documentation/SystemConfiguration/SCNetworkServiceCopyAll(_:))

Returns all available network services for the specified preferences.

[`SCNetworkServiceCopyProtocol`](/documentation/SystemConfiguration/SCNetworkServiceCopyProtocol(_:_:))

Returns the network protocol of the specified type for the specified service.

[`SCNetworkServiceCopyProtocols`](/documentation/SystemConfiguration/SCNetworkServiceCopyProtocols(_:))

Returns all network protocols associated with the specified service.

[`SCNetworkServiceCreate`](/documentation/SystemConfiguration/SCNetworkServiceCreate(_:_:))

Creates a new network service for the specified interface in the configuration.

[`SCNetworkServiceEstablishDefaultConfiguration`](/documentation/SystemConfiguration/SCNetworkServiceEstablishDefaultConfiguration(_:))

Establishes the default configuration for the specified network service.

[`SCNetworkServiceGetEnabled`](/documentation/SystemConfiguration/SCNetworkServiceGetEnabled(_:))

Returns a Boolean value indicating whether the specified service is enabled.

[`SCNetworkServiceGetInterface`](/documentation/SystemConfiguration/SCNetworkServiceGetInterface(_:))

Returns the network interface associated with the specified service.

[`SCNetworkServiceGetName`](/documentation/SystemConfiguration/SCNetworkServiceGetName(_:))

Returns the user-specified name associated with the specified service.

[`SCNetworkServiceGetServiceID`](/documentation/SystemConfiguration/SCNetworkServiceGetServiceID(_:))

Returns the identifier for the specified service.

[`SCNetworkServiceGetTypeID`](/documentation/SystemConfiguration/SCNetworkServiceGetTypeID())

Returns the type identifier of all `SCNetworkService` instances.

[`SCNetworkServiceRemove`](/documentation/SystemConfiguration/SCNetworkServiceRemove(_:))

Removes the specified network service from the configuration.

[`SCNetworkServiceRemoveProtocolType`](/documentation/SystemConfiguration/SCNetworkServiceRemoveProtocolType(_:_:))

Removes the network protocol of the specified type from the specified service.

[`SCNetworkServiceSetEnabled`](/documentation/SystemConfiguration/SCNetworkServiceSetEnabled(_:_:))

Enables or disables the specified service.

[`SCNetworkServiceSetName`](/documentation/SystemConfiguration/SCNetworkServiceSetName(_:_:))

Stores the user-specified name for the specified service.

### Configuring Network Sets

[`SCNetworkSetAddService`](/documentation/SystemConfiguration/SCNetworkSetAddService(_:_:))

Adds the specified network service to the specified set.

[`SCNetworkSetContainsInterface`](/documentation/SystemConfiguration/SCNetworkSetContainsInterface(_:_:))

Returns a Boolean value indicating whether the specified interface is represented by at least one network service in the specified set.

[`SCNetworkSetCopy`](/documentation/SystemConfiguration/SCNetworkSetCopy(_:_:))

Returns the set with the specified identifier.

[`SCNetworkSetCopyAll`](/documentation/SystemConfiguration/SCNetworkSetCopyAll(_:))

Returns all available sets for the specified preferences session.

[`SCNetworkSetCopyCurrent`](/documentation/SystemConfiguration/SCNetworkSetCopyCurrent(_:))

Returns the current set.

[`SCNetworkSetCopyServices`](/documentation/SystemConfiguration/SCNetworkSetCopyServices(_:))

Returns all network services associated with the specified set.

[`SCNetworkSetCreate`](/documentation/SystemConfiguration/SCNetworkSetCreate(_:))

Creates a new set in the configuration.

[`SCNetworkSetGetName`](/documentation/SystemConfiguration/SCNetworkSetGetName(_:))

Returns the user-specified name associated with the specified set.

[`SCNetworkSetGetServiceOrder`](/documentation/SystemConfiguration/SCNetworkSetGetServiceOrder(_:))

Returns the user-specified ordering of network services within the specified set.

[`SCNetworkSetGetSetID`](/documentation/SystemConfiguration/SCNetworkSetGetSetID(_:))

Returns the identifier for the specified set.

[`SCNetworkSetGetTypeID`](/documentation/SystemConfiguration/SCNetworkSetGetTypeID())

Returns the type identifier of all `SCNetworkSet` instances.

[`SCNetworkSetRemove`](/documentation/SystemConfiguration/SCNetworkSetRemove(_:))

Removes the specified set from the configuration.

[`SCNetworkSetRemoveService`](/documentation/SystemConfiguration/SCNetworkSetRemoveService(_:_:))

Removes the specified network service from the specified set.

[`SCNetworkSetSetCurrent`](/documentation/SystemConfiguration/SCNetworkSetSetCurrent(_:))

Specifies the set that should be the current set.

[`SCNetworkSetSetName`](/documentation/SystemConfiguration/SCNetworkSetSetName(_:_:))

Stores the user-specified name for the specified set.

[`SCNetworkSetSetServiceOrder`](/documentation/SystemConfiguration/SCNetworkSetSetServiceOrder(_:_:))

Stores the user-specified ordering of network services for the specified set.

### Configuring VLAN Interfaces

[`SCVLANInterfaceCopyAll`](/documentation/SystemConfiguration/SCVLANInterfaceCopyAll(_:))

Returns all virtual LAN (VLAN) interfaces on the system.

[`SCVLANInterfaceCopyAvailablePhysicalInterfaces`](/documentation/SystemConfiguration/SCVLANInterfaceCopyAvailablePhysicalInterfaces())

Returns the network capable devices on the system that can be associated with a virtual LAN (VLAN) interface.

[`SCVLANInterfaceCreate`](/documentation/SystemConfiguration/SCVLANInterfaceCreate(_:_:_:))

Creates a new virtual LAN (VLAN) interface.

[`SCVLANInterfaceGetOptions`](/documentation/SystemConfiguration/SCVLANInterfaceGetOptions(_:))

Returns the configuration settings associated with the virtual LAN (VLAN) interface.

[`SCVLANInterfaceGetPhysicalInterface`](/documentation/SystemConfiguration/SCVLANInterfaceGetPhysicalInterface(_:))

Returns the physical interface for the specified virtual LAN (VLAN) interface.

[`SCVLANInterfaceGetTag`](/documentation/SystemConfiguration/SCVLANInterfaceGetTag(_:))

Returns the tag for the specified virtual LAN (VLAN) interface.

[`SCVLANInterfaceRemove`](/documentation/SystemConfiguration/SCVLANInterfaceRemove(_:))

Removes the virtual LAN (VLAN) interface from the configuration.

[`SCVLANInterfaceSetLocalizedDisplayName`](/documentation/SystemConfiguration/SCVLANInterfaceSetLocalizedDisplayName(_:_:))

Sets the localized display name for the specified virtual LAN (VLAN) interface.

[`SCVLANInterfaceSetOptions`](/documentation/SystemConfiguration/SCVLANInterfaceSetOptions(_:_:))

Sets the specified configuration settings for the specified virtual LAN (VLAN) interface.

[`SCVLANInterfaceSetPhysicalInterfaceAndTag`](/documentation/SystemConfiguration/SCVLANInterfaceSetPhysicalInterfaceAndTag(_:_:_:))

Updates the specified virtual LAN (VLAN) interface with the specified information.

### Data Types

[`SCNetworkInterface`](/documentation/SystemConfiguration/SCNetworkInterface)

The reference to an object that represents a network interface.

[`SCBondInterface`](/documentation/SystemConfiguration/SCBondInterface)

The reference to an object that represents an Ethernet bond interface.

[`SCBondStatus`](/documentation/SystemConfiguration/SCBondStatus)

The reference to an object that represents the status of an Ethernet bond interface.

[`SCVLANInterface`](/documentation/SystemConfiguration/SCVLANInterface)

The reference to an object that represents a virtual LAN (VLAN) interface.

[`SCNetworkProtocol`](/documentation/SystemConfiguration/SCNetworkProtocol)

The reference to an object that represents a network protocol.

[`SCNetworkService`](/documentation/SystemConfiguration/SCNetworkService)

The reference to an object that represents a network service.

[`SCNetworkSet`](/documentation/SystemConfiguration/SCNetworkSet)

The reference to an object that represents a network set.

### Constants

[Ethernet Bond Aggregation Status](/documentation/SystemConfiguration/1546981-ethernet-bond-aggregation-status)

Ethernet bond aggregation status codes.

[Ethernet Bond Status Constants](/documentation/SystemConfiguration/ethernet-bond-status-constants)

Ethernet bond status codes.

[Network Interface Types](/documentation/SystemConfiguration/network-interface-types)

Keys that identify network interface types.

[Network Protocol Types](/documentation/SystemConfiguration/network-protocol-types)

Keys that identify network protocol types.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)