CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-com-networknt--utility

A comprehensive utility library for Light-4J microservices framework providing string manipulation, networking, I/O, security, and configuration utilities.

Pending
Overview
Eval results
Files

network-operations.mddocs/

Network Operations

Network utilities for IP address handling, port management, and network validation. These utilities provide comprehensive networking support for microservices, including local address detection, hostname resolution, and URL formatting for both IPv4 and IPv6 environments.

Capabilities

Network Utilities

Comprehensive network operations for IP address handling, validation, and network discovery.

/**
 * Network utilities for IP address handling and validation
 */
public class NetUtils {
    public static final String LOCALHOST = "127.0.0.1";
    public static final String ANYHOST = "0.0.0.0";
    
    // Host validation
    public static boolean isInvalidLocalHost(String host);
    public static boolean isValidLocalHost(String host);
    public static boolean isValidAddress(String address);
    public static boolean isValidAddress(InetAddress address);
    
    // Local address discovery
    public static InetAddress getLocalAddress();
    public static InetAddress getLocalAddress(Map<String, Integer> destHostPorts);
    public static String getLocalAddressByDatagram();
    
    // Network operations
    public static String getHostName(SocketAddress socketAddress);
    public static int getAvailablePort();
    
    // URL formatting
    public static String hostAndPortToUrlString(String host, int port);
    public static String ipAddressAndPortToUrlString(InetAddress address, int port);
    public static String ipAddressToUrlString(InetAddress address);
    
    // DNS resolution
    public static String resolveHost2Address(String fqdn);
    public static URI resolveUriHost2Address(URI uri);
}

Usage Examples:

import com.networknt.utility.NetUtils;
import java.net.InetAddress;
import java.net.URI;

// Local address discovery
InetAddress localAddr = NetUtils.getLocalAddress();
String localIP = NetUtils.getLocalAddressByDatagram();

// Host validation
boolean isValid = NetUtils.isValidLocalHost("192.168.1.100"); // true
boolean isInvalid = NetUtils.isInvalidLocalHost("0.0.0.0"); // true

// Port management
int availablePort = NetUtils.getAvailablePort(); // e.g., 8080

// URL formatting
String url = NetUtils.hostAndPortToUrlString("localhost", 8080); // "localhost:8080"
String ipUrl = NetUtils.ipAddressToUrlString(InetAddress.getByName("192.168.1.1")); // "192.168.1.1"

// IPv6 handling
InetAddress ipv6 = InetAddress.getByName("2001:db8::1");
String ipv6Url = NetUtils.ipAddressToUrlString(ipv6); // "[2001:db8::1]"

// DNS resolution
String resolved = NetUtils.resolveHost2Address("example.com"); // "93.184.216.34"
URI resolvedUri = NetUtils.resolveUriHost2Address(URI.create("http://example.com/path"));

// Advanced local address detection with destination mapping
Map<String, Integer> destinations = Map.of(
    "api.service.com", 443,
    "db.service.com", 5432
);
InetAddress bestLocal = NetUtils.getLocalAddress(destinations);

Use Cases

Microservice Discovery:

// Find best local interface for service registration
InetAddress serviceAddr = NetUtils.getLocalAddress();
int servicePort = NetUtils.getAvailablePort();
String serviceUrl = NetUtils.ipAddressAndPortToUrlString(serviceAddr, servicePort);

Load Balancer Health Checks:

// Validate health check source addresses
boolean isValidSource = NetUtils.isValidAddress("10.0.1.50");
String sourceName = NetUtils.getHostName(socketAddress);

Service Configuration:

// Resolve configuration hostnames to IP addresses
String dbHost = "database.internal.com";
String dbIp = NetUtils.resolveHost2Address(dbHost);
String connectionUrl = "jdbc:postgresql://" + dbIp + ":5432/mydb";

IPv6 Support:

// Handle both IPv4 and IPv6 addresses in URL construction
InetAddress address = InetAddress.getByName(hostString);
String urlSafeAddress = NetUtils.ipAddressToUrlString(address);
// IPv4: "192.168.1.1" -> "192.168.1.1"
// IPv6: "2001:db8::1" -> "[2001:db8::1]"

Install with Tessl CLI

npx tessl i tessl/maven-com-networknt--utility

docs

configuration-management.md

data-structure-utilities.md

framework-integration.md

index.md

io-file-operations.md

network-operations.md

path-template-matching.md

security-cryptography.md

string-processing.md

time-date-operations.md

tile.json