java項目獲取ip和端口號是非常重要的一個功能。在網絡通信中,ip和端口號是兩個非常基礎的參數,可以幫助我們確定數據的傳輸方式。下面我們來看看java中如何獲取ip和端口號。
/** * 獲取本機ip地址 * @return String */ public static String getLocalIP() { String ip = ""; try { Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces(); while (enumeration.hasMoreElements()) { NetworkInterface networkInterface = enumeration.nextElement(); Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses(); while (inetAddresses.hasMoreElements()) { InetAddress inetAddress = inetAddresses.nextElement(); if (!inetAddress.isLinkLocalAddress() && !inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { ip = inetAddress.getHostAddress(); } } } } catch (SocketException e) { e.printStackTrace(); } return ip; } /** * 獲取本機端口號 * @return int */ public static int getLocalPort() { try (ServerSocket serverSocket = new ServerSocket(0)) { return serverSocket.getLocalPort(); } catch (IOException e) { e.printStackTrace(); } return 0; }
代碼中,我們使用了java中的網絡接口(NetworkInterface)和服務器套接字(ServerSocket)類來獲取ip和端口號。其中,獲取本機ip地址的方法使用了網絡接口類中的getInetAddresses()方法和InetAddress類的isLinkLocalAddress()方法、isLoopbackAddress()方法和getHostAddress()方法,來篩選出符合條件的ip地址。獲取本機端口號的方法則是通過服務器套接字類的getLocalPort()方法來實現的。
總之,通過以上兩個方法,可以確保我們獲取到正確的ip和端口號,便于我們進行網絡通信和數據傳輸。