Получить список локальных IP адресов устройства

  1. public static Inet4Address[] getLocalAddrasses(ConnectivityManager connManager) throws SocketException {
  2.         ArrayList<Inet4Address> results = new ArrayList<Inet4Address>(1);
  3.         Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
  4.         while (interfaces.hasMoreElements()) {
  5.             NetworkInterface iface = interfaces.nextElement();
  6.             if (!iface.isUp() || iface.isLoopback() || !iface.supportsMulticast()) {
  7.                 continue;
  8.             }
  9.             Enumeration<InetAddress> addresses = iface.getInetAddresses();
  10.             while (addresses.hasMoreElements()) {
  11.                 InetAddress addr = addresses.nextElement();
  12.                 if (addr instanceof Inet4Address) {
  13.                     results.add((Inet4Address) addr);
  14.                 }
  15.             }
  16.         }
  17.         return results.toArray(new Inet4Address[results.size()]);
  18.     }
Проверка if (addr instanceof Inet4Address) нужна для исключения дублирования адресов (будет и IPv4 и IPv6)

Реклама

Мы в соцсетях

tw tg yt gt