소스 검색

Find the network interface by index on windows operating systems.

Jan Pohlmann 8 년 전
부모
커밋
222530cfb7
1개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  1. 10 2
      RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/MiscUtils.java

+ 10 - 2
RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/MiscUtils.java

@@ -65,7 +65,11 @@ public final class MiscUtils {
 		NetworkInterface nif = null;
 		
 		try {
-			nif = NetworkInterface.getByName(networkInterfaceConfig);
+			if (System.getProperty("os.name").toLowerCase().indexOf("win") >= 0) {
+				nif = NetworkInterface.getByIndex(Integer.parseInt(networkInterfaceConfig));
+			} else {
+				nif = NetworkInterface.getByName(networkInterfaceConfig);
+			}
 			Enumeration<InetAddress> inetAddresses = nif.getInetAddresses();
 			
 			while (inetAddresses.hasMoreElements()) {
@@ -96,7 +100,11 @@ public final class MiscUtils {
 		byte[] macAddress = null;
 		
 		try {
-			nif = NetworkInterface.getByName(networkInterfaceConfig);
+			if (System.getProperty("os.name").toLowerCase().indexOf("win") >= 0) {
+				nif = NetworkInterface.getByIndex(Integer.parseInt(networkInterfaceConfig));
+			} else {
+				nif = NetworkInterface.getByName(networkInterfaceConfig);
+			}
 			macAddress = nif.getHardwareAddress();
 		} catch (SocketException e) {
 			getLogger().error("Failed to retrieve local mac address (SocketException)", e);