<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "tvOS: -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "SystemConfiguration",
  "identifier" : "/documentation/SystemConfiguration/SCNetworkReachabilityFlags",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "System Configuration"
    ],
    "preciseIdentifier" : "c:@E@SCNetworkReachabilityFlags"
  },
  "title" : "SCNetworkReachabilityFlags"
}
-->

# SCNetworkReachabilityFlags

Flags that indicate the reachability of a network node name or address, including whether a connection is required, and whether some user intervention might be required when establishing a connection.

```
struct SCNetworkReachabilityFlags
```

## Topics

### Constants

[`kSCNetworkReachabilityFlagsTransientConnection`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/transientConnection)

The specified node name or address can be reached via a transient connection, such as PPP.

[`kSCNetworkReachabilityFlagsReachable`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/reachable)

The specified node name or address can be reached using the current network configuration.

[`kSCNetworkReachabilityFlagsConnectionRequired`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/connectionRequired)

The specified node name or address can be reached using the current network configuration, but a connection must first be established. If this flag is set, the `kSCNetworkReachabilityFlagsConnectionOnTraffic` flag, `kSCNetworkReachabilityFlagsConnectionOnDemand` flag, or `kSCNetworkReachabilityFlagsIsWWAN` flag is also typically set to indicate the type of connection required. If the user must manually make the connection, the `kSCNetworkReachabilityFlagsInterventionRequired` flag is also set.

[`kSCNetworkReachabilityFlagsConnectionOnTraffic`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/connectionOnTraffic)

The specified node name or address can be reached using the current network configuration, but a connection must first be established. Any traffic directed to the specified name or address will initiate the connection.

[`kSCNetworkReachabilityFlagsInterventionRequired`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/interventionRequired)

The specified node name or address can be reached using the current network configuration, but a connection must first be established.

[`kSCNetworkReachabilityFlagsConnectionOnDemand`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/connectionOnDemand)

The specified node name or address can be reached using the current network configuration, but a connection must first be established.

[`kSCNetworkReachabilityFlagsIsLocalAddress`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/isLocalAddress)

The specified node name or address is one that is associated with a network interface on the current system.

[`kSCNetworkReachabilityFlagsIsDirect`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/isDirect)

Network traffic to the specified node name or address will not go through a gateway, but is routed directly to one of the interfaces in the system.

[`kSCNetworkReachabilityFlagsIsWWAN`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/isWWAN)

The specified node name or address can be reached via a cellular connection, such as EDGE or GPRS.

[`kSCNetworkReachabilityFlagsConnectionAutomatic`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/connectionAutomatic)

The specified node name or address can be reached using the current network configuration, but a connection must first be established. Any traffic directed to the specified name or address will initiate the connection. This flag is a synonym for [`connectionOnTraffic`](/documentation/SystemConfiguration/SCNetworkReachabilityFlags/connectionOnTraffic).

## Relationships

### Conforms To

[`SetAlgebra`](/documentation/Swift/SetAlgebra)

[`OptionSet`](/documentation/Swift/OptionSet)

[`ExpressibleByArrayLiteral`](/documentation/Swift/ExpressibleByArrayLiteral)

[`Equatable`](/documentation/Swift/Equatable)

[`BitwiseCopyable`](/documentation/Swift/BitwiseCopyable)

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`RawRepresentable`](/documentation/Swift/RawRepresentable)

---

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)