Interface InternetProtocolStats

All Known Implementing Classes:
AbstractInternetProtocolStats, LinuxInternetProtocolStats

@PublicApi @ThreadSafe public interface InternetProtocolStats
Provides key statistics for TCP and UDP network protocols, including aggregate counters and per-connection details.

Use getTCPv4Stats() and getTCPv6Stats() for aggregate TCP counters (connections established, active, passive, failures, resets, and segment counts). Use getUDPv4Stats() and getUDPv6Stats() for aggregate UDP counters (datagrams sent, received, and errors).

Use getConnections() to list individual active TCP and UDP connections, each represented as an InternetProtocolStats.IPConnection with local/remote addresses, ports, state, and owning process ID.

Example: listing active TCP connections:

InternetProtocolStats ipStats = os.getInternetProtocolStats();
for (IPConnection conn : ipStats.getConnections()) {
    if (conn.getType().startsWith("tcp")) {
        String local = addrToString(conn.getLocalAddress());
        String foreign = addrToString(conn.getForeignAddress());
        System.out.printf("%s:%d -> %s:%d (%s)%n", local, conn.getLocalPort(), foreign, conn.getForeignPort(),
                conn.getState());
    }
}

// Helper to safely convert address bytes to a string
static String addrToString(byte[] addr) {
    try {
        return addr.length > 0 ? InetAddress.getByAddress(addr).getHostAddress() : "*";
    } catch (UnknownHostException e) {
        return "?";
    }
}
Platform notes: On macOS, connection information requires elevated permissions. Without elevated permissions, TCP segment data is estimated.
See Also: