Network Utilities Library
Connectivity, ping, DNS, interface, Wi-Fi, Ethernet, local-IP, and public-IP nodes.
Use this library for network diagnostics and player or machine connectivity checks.
Project Settings
The fallback URL and timeout values used by the async internet nodes live in Project Settings > Plugins > Windows Native Toolkit > Network.
Is Connected To Internet
Returns whether Windows currently reports internet connectivity.
| Pin | Direction | Purpose |
|---|---|---|
Return Value | Output | True when Windows reports internet access. |
#include "NetworkUtilities.h"
void AMyActor::ExampleUsage()
{
const bool bConnected = UNetworkUtilities::IsConnectedToInternet();
}Query Player Internet Access
Sends a lightweight HTTP probe to confirm real internet access instead of only local-network connectivity.
| Pin | Direction | Purpose |
|---|---|---|
WorldContextObject | Input | Async action registration context. |
TargetURL | Input | Probe URL. Leave empty to use the project default. |
Timeout | Input | Timeout in seconds. Use 0 to use the project default. |
Then | Output | Continues immediately after the node starts. |
On Success | Output | Fires when the HTTP probe completed successfully. |
On Fail | Output | Fires when the HTTP probe request itself failed. |
bHasInternet | Output | True when the probe confirmed internet access. |
#include "NetworkUtilities.h"
UFUNCTION()
void HandleInternetProbeSuccess(bool bHasInternet);
UFUNCTION()
void HandleInternetProbeFail(bool bHasInternet);
UAsyncQueryInternetAccessAction* Action =
UAsyncQueryInternetAccessAction::QueryInternetAccess(this, FString(), 0.0f);
Action->OnSuccess.AddDynamic(this, &UMyObject::HandleInternetProbeSuccess);
Action->OnFail.AddDynamic(this, &UMyObject::HandleInternetProbeFail);Get Network Connection Type
Returns the current Windows connection type.
| Pin | Direction | Purpose |
|---|---|---|
Return Value | Output | ENetworkWindowsType such as Wi-Fi, Ethernet, Both, or No Connection. |
#include "NetworkUtilities.h"
void AMyActor::ExampleUsage()
{
const ENetworkWindowsType ConnectionType = UNetworkUtilities::GetConnectionType();
}Ping URL or IP
Pings a host name or IPv4 target asynchronously.
| Pin | Direction | Purpose |
|---|---|---|
WorldContextObject | Input | Async action registration context. |
Address | Input | Host name or IPv4 target to ping. |
Timeout | Input | Timeout in seconds. Use 0 to use the project default. |
Then | Output | Continues immediately after the node starts. |
On Success | Output | Fires when ICMP ping succeeds. |
On Fail | Output | Fires when the host could not be reached. |
PingMs | Output | Round-trip time in milliseconds. |
#include "NetworkUtilities.h"
UFUNCTION()
void HandlePingSuccess(int32 PingMs);
UFUNCTION()
void HandlePingFail(int32 PingMs);
UAsyncPingAddressAction* Action =
UAsyncPingAddressAction::PingAddress(this, TEXT("8.8.8.8"), 2.0f);
Action->OnSuccess.AddDynamic(this, &UMyObject::HandlePingSuccess);
Action->OnFail.AddDynamic(this, &UMyObject::HandlePingFail);Resolve Domain Name
Resolves a host name to an IPv4 address asynchronously.
| Pin | Direction | Purpose |
|---|---|---|
WorldContextObject | Input | Async action registration context. |
Hostname | Input | Host name to resolve. |
Then | Output | Continues immediately after the node starts. |
On Success | Output | Fires when resolution succeeds. |
On Fail | Output | Fires when resolution fails. |
ResolvedIP | Output | Resolved IPv4 address string. |
#include "NetworkUtilities.h"
UFUNCTION()
void HandleResolveSuccess(FString ResolvedIP);
UFUNCTION()
void HandleResolveFail(FString ResolvedIP);
UAsyncResolveDomainAction* Action =
UAsyncResolveDomainAction::ResolveDomain(this, TEXT("openai.com"));
Action->OnSuccess.AddDynamic(this, &UMyObject::HandleResolveSuccess);
Action->OnFail.AddDynamic(this, &UMyObject::HandleResolveFail);Get Available Network Interfaces
Returns all active network interfaces that Windows currently reports.
| Pin | Direction | Purpose |
|---|---|---|
Return Value | Output | TArray<FNetworkInterfaceInfo> for active interfaces. |
#include "NetworkUtilities.h"
void AMyActor::ExampleUsage()
{
const TArray<FNetworkInterfaceInfo> Interfaces = UNetworkUtilities::GetAvailableInterfaces();
}FNetworkInterfaceInfo Fields
| Field | Description |
|---|---|
InterfaceName | The human-readable name of the network connection (e.g., "Ethernet 2"). |
HardwareName | The description of the network adapter hardware. |
Type | The type of network interface (e.g., Ethernet, Wireless80211). |
InterfaceID | The unique GUID string representing the network interface. |
Get Detailed Wi-Fi Info
Returns detailed Wi-Fi information for a specific interface ID.
| Pin | Direction | Purpose |
|---|---|---|
InterfaceID | Input | Interface ID from Get Available Network Interfaces. |
Return Value | Output | FWiFiNetworkInfo for the selected Wi-Fi interface. |
#include "NetworkUtilities.h"
void AMyActor::ExampleUsage()
{
const FWiFiNetworkInfo WiFiInfo = UNetworkUtilities::GetDetailedWiFiInfo(InterfaceID);
}FWiFiNetworkInfo Fields
| Field | Description |
|---|---|
SSID | The Service Set Identifier (network name) of the Wi-Fi access point. |
BSSID | The MAC address of the wireless access point. |
SignalQuality | The signal strength percentage (0-100%). |
AuthAlgorithm | The security protocol used by the network (e.g., RSNA-PSK for WPA2). |
bSuccess | True if the network information was successfully retrieved. |
Get Detailed Ethernet Info
Returns detailed Ethernet information for a specific interface ID.
| Pin | Direction | Purpose |
|---|---|---|
InterfaceID | Input | Interface ID from Get Available Network Interfaces. |
Return Value | Output | FEthernetNetworkInfo for the selected Ethernet interface. |
#include "NetworkUtilities.h"
void AMyActor::ExampleUsage()
{
const FEthernetNetworkInfo EthernetInfo = UNetworkUtilities::GetDetailedEthernetInfo(InterfaceID);
}FEthernetNetworkInfo Fields
| Field | Description |
|---|---|
InterfaceName | The human-readable name of the ethernet connection. |
InterfaceID | The unique GUID string representing the network interface. |
IPv4Address | The active local IPv4 address assigned to the interface. |
MACAddress | The physical MAC address of the network adapter. |
LinkSpeedMbps | The negotiated transmission speed of the connection in Megabytes per second. |
bDhcpEnabled | True if the IP address is dynamically assigned by a DHCP server. |
Get Private IPv4 Address
Returns the current private IPv4 address for one interface ID.
| Pin | Direction | Purpose |
|---|---|---|
InterfaceID | Input | Interface ID from Get Available Network Interfaces. |
Return Value | Output | IPv4 address string for that interface. |
#include "NetworkUtilities.h"
void AMyActor::ExampleUsage()
{
const FString LocalIP = UNetworkUtilities::GetLocalIpForInterface(InterfaceID);
}Get Public IP
Returns the public IPv4 address asynchronously.
Removed Node
Get Wifi Network SSID was removed. Use Get Detailed Wi-Fi Info instead because it already returns the SSID together with the rest of the Wi-Fi details.
| Pin | Direction | Purpose |
|---|---|---|
WorldContextObject | Input | Async action registration context. |
Mode | Input | Provider selection: Auto, IfConfig, Amazon AWS, or ICanHazIP. |
Timeout | Input | Timeout in seconds. Use 0 to use the project default. |
Then | Output | Continues immediately after the node starts. |
On Success | Output | Fires when a valid public IP was returned. |
On Fail | Output | Fires when no valid public IP was returned. |
PublicIP | Output | Returned public IPv4 address. |
#include "NetworkUtilities.h"
UFUNCTION()
void HandlePublicIPSuccess(FString PublicIP);
UFUNCTION()
void HandlePublicIPFail(FString PublicIP);
UAsyncGetPublicIPAction* Action =
UAsyncGetPublicIPAction::GetPublicIP(this, EPublicIPProvider::Auto, 0.0f);
Action->OnSuccess.AddDynamic(this, &UMyObject::HandlePublicIPSuccess);
Action->OnFail.AddDynamic(this, &UMyObject::HandlePublicIPFail);Last updated on