From 7b91cd7498297835f6d29379923bfae77dcdd372 Mon Sep 17 00:00:00 2001 From: WickedJack99 Date: Mon, 1 Apr 2024 17:27:37 +0200 Subject: [PATCH] Class with methods to check if enterde ip and port are valid. --- .../java/src/Input/NetworkController.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/java/java/src/Input/NetworkController.java diff --git a/src/main/java/java/src/Input/NetworkController.java b/src/main/java/java/src/Input/NetworkController.java new file mode 100644 index 0000000..256cc63 --- /dev/null +++ b/src/main/java/java/src/Input/NetworkController.java @@ -0,0 +1,41 @@ +package java.src.Input; + +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.ServerSocket; +import java.util.Enumeration; + +public class NetworkController { + public static boolean hasNetworkInterfaceWithIP(String ipAddressAsString) { + try { + InetAddress ipAddress = InetAddress.getByName(ipAddressAsString); + Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); + + while (networkInterfaces.hasMoreElements()) { + NetworkInterface networkInterface = networkInterfaces.nextElement(); + Enumeration interfaceAddresses = networkInterface.getInetAddresses(); + + while (interfaceAddresses.hasMoreElements()) { + InetAddress address = interfaceAddresses.nextElement(); + if (address.equals(ipAddress)) { + return true; + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + // No network interface found with the specified IP + return false; + } + + public static boolean isPortFree(int port) { + try (ServerSocket serverSocket = new ServerSocket(port)) { + // If the ServerSocket can be created without exception, the port is free + return true; + } catch (Exception e) { + // If an exception occurs, it means the port is already in use + return false; + } + } +}