獲取本地的IP地址
阿新 • • 發佈:2019-01-27
/** * 得到有線閘道器的IP地址 * * @return */ private String getLocalIp() { try { // 獲取本地裝置的所有網路介面 Enumeration<NetworkInterface> enumerationNi = NetworkInterface .getNetworkInterfaces(); while (enumerationNi.hasMoreElements()) { NetworkInterface networkInterface = enumerationNi.nextElement(); String interfaceName = networkInterface.getDisplayName(); Log.i("tag", "網路名字" + interfaceName); // 如果是有限網絡卡 if (interfaceName.equals("eth0")) { Enumeration<InetAddress> enumIpAddr = networkInterface .getInetAddresses(); while (enumIpAddr.hasMoreElements()) { // 返回列舉集合中的下一個IP地址資訊 InetAddress inetAddress = enumIpAddr.nextElement(); // 不是迴環地址,並且是ipv4的地址 if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { Log.i("tag", inetAddress.getHostAddress() + " "); return inetAddress.getHostAddress(); } } } } } catch (SocketException e) { e.printStackTrace(); } return ""; } /** * 得到無線閘道器的IP地址 * * @return */ private String getWirelseeIp() { try { // 獲取本地裝置的所有網路介面 Enumeration<NetworkInterface> enumerationNi = NetworkInterface .getNetworkInterfaces(); while (enumerationNi.hasMoreElements()) { NetworkInterface networkInterface = enumerationNi.nextElement(); String interfaceName = networkInterface.getDisplayName(); Log.i("tag", "網路名字" + interfaceName); // 如果是無線網絡卡 if (interfaceName.equals("wlan0")) { Enumeration<InetAddress> enumIpAddr = networkInterface .getInetAddresses(); while (enumIpAddr.hasMoreElements()) { // 返回列舉集合中的下一個IP地址資訊 InetAddress inetAddress = enumIpAddr.nextElement(); // 不是迴環地址,並且是ipv4的地址 if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { Log.i("tag", inetAddress.getHostAddress() + " "); return inetAddress.getHostAddress(); } } } } } catch (SocketException e) { e.printStackTrace(); } return ""; } /** * 得到無線閘道器的IP地址 * * @return */ private void getAllIp() { try { // 獲取本地裝置的所有網路介面 Enumeration<NetworkInterface> enumerationNi = NetworkInterface .getNetworkInterfaces(); while (enumerationNi.hasMoreElements()) { NetworkInterface networkInterface = enumerationNi.nextElement(); String interfaceName = networkInterface.getDisplayName(); Log.i("tag", "網路名字" + interfaceName); Enumeration<InetAddress> enumIpAddr = networkInterface .getInetAddresses(); while (enumIpAddr.hasMoreElements()) { // 返回列舉集合中的下一個IP地址資訊 InetAddress inetAddress = enumIpAddr.nextElement(); Log.i("tag", inetAddress.getHostAddress() + "哪個型別的 " + inetAddress.getClass().toString()); } } } catch (SocketException e) { e.printStackTrace(); } } /** * 得到IP地址 * * @return */ private String getIpAddress() { String ip = ""; try { Enumeration<NetworkInterface> enumNetworkInterfaces = NetworkInterface .getNetworkInterfaces(); while (enumNetworkInterfaces.hasMoreElements()) { NetworkInterface networkInterface = enumNetworkInterfaces .nextElement(); Enumeration<InetAddress> enumInetAddress = networkInterface .getInetAddresses(); while (enumInetAddress.hasMoreElements()) { InetAddress inetAddress = enumInetAddress.nextElement(); if (inetAddress.isSiteLocalAddress()) { ip += "SiteLocalAddress: " + inetAddress.getHostAddress() + "\n"; } } } } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); ip += "Something Wrong! " + e.toString() + "\n"; } return ip; }