This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Expo Network
A library that provides access to the device's network such as its IP address, MAC address, and airplane mode status.
expo-network provides useful information about the device's network such as its IP address, MAC address, and airplane mode status.
Installation
If you are installing this in an existing React Native app, make sure to install expo in your project.
Configuration
On Android, this module requires permissions to access the network and Wi-Fi state. The permissions ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE are added automatically.
API
import * as Network from 'expo-network';
Hooks
Returns the current network state of the device. This method initiates a listener for network state changes and cleans up before unmounting.
NetworkStateThe current network state of the device, including connectivity and type.
Example
const networkState = useNetworkState(); console.log(`Current network type: ${networkState.type}`);
Methods
Gets the device's current IPv4 address. Returns 0.0.0.0 if the IP address could not be retrieved.
On web, this method uses the third-party ipify service to get the
public IP address of the current device.
Promise<string>A Promise that fulfils with a string of the current IP address of the device's main
network interface. Can only be IPv4 address.
Example
await Network.getIpAddressAsync(); // "92.168.32.44"
Gets the device's current network connection state.
On web, navigator.connection.type is not available on browsers. So if there is an active
network connection, the field type returns NetworkStateType.UNKNOWN. Otherwise, it returns
NetworkStateType.NONE.
Promise<NetworkState>A Promise that fulfils with a NetworkState object.
Example
await Network.getNetworkStateAsync(); // { // type: NetworkStateType.CELLULAR, // isConnected: true, // isInternetReachable: true, // }
Tells if the device is in airplane mode.
Promise<boolean>Returns a Promise that fulfils with a boolean value for whether the device is in
airplane mode or not.
Example
await Network.isAirplaneModeEnabledAsync(); // false
Event subscriptions
Adds a listener that will fire whenever the network state changes.
EventSubscriptionA subscription object with a remove function to unregister the listener.
Example
const subscription = addNetworkStateListener(({ type, isConnected, isInternetReachable }) => { console.log(`Network type: ${type}, Connected: ${isConnected}, Internet Reachable: ${isInternetReachable}`); });
Types
Type: NetworkState
Represents an event that provides the updated network state when there is a change in the network status.
This is passed as the argument to listeners registered with addNetworkStateListener().
Enums
An enum of the different types of devices supported by Expo.
NetworkStateType.CELLULAR = "CELLULAR"Active network connection over mobile data or DUN-specific
mobile connection when setting an upstream connection for tethering.
NetworkStateType.OTHER = "OTHER"Active network connection over other network connection types.