Получите iPaddress компьютера в проекте Android с помощью Java

StackOverflow https://stackoverflow.com/questions/5307992

Вопрос

Я использую KSOAP2-Android И мне нужно получить IP -адрес, используя Java, чтобы мне не приходилось каждый раз печатать его вручную.

Я имею в виду под IP -адресом, например, если я делаю ipconfig Используя командную оболочку:
Подключение DNS Суффикс. :
Ссылка-локальный адрес IPv6. Анкет Анкет Анкет Анкет : f0 :: ed2: e3bf: 8206: 44%13
Адрес IPv4. Анкет Анкет Анкет Анкет Анкет Анкет Анкет Анкет Анкет Анкет : 192.168.1.107 <-этот
Маска подсети . Анкет Анкет Анкет Анкет Анкет Анкет Анкет Анкет Анкет Анкет : 255.255.255.0
Шлюз по умолчанию . Анкет Анкет Анкет Анкет Анкет Анкет Анкет Анкет : 192.168.1.1

Дело в том, что я разрабатываю приложение для Android, а эмулятор имеет другой тип IP, чем у машины.
Мне нужно получить IP машины, как это сделать?

большое спасибо

Это было полезно?

Решение

public String getLocalIpAddress() {
        try {
            for (Enumeration<NetworkInterface> en = NetworkInterface
                    .getNetworkInterfaces(); en.hasMoreElements();) {
                NetworkInterface intf = en.nextElement();
                for (Enumeration<InetAddress> enumIpAddr = intf
                        .getInetAddresses(); enumIpAddr.hasMoreElements();) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) {
                        return inetAddress.getHostAddress().toString();
                    }
                }
            }
        } catch (SocketException ex) {
            Log.e(tag, ex.toString());
        }
        return "";
    }

Другие советы

Чтобы получить iPaddress вашего устройства Android, вы используете этот код.

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = intToIp(ipAddress);

public String intToIp(int i) {

   return ((i >> 24 ) & 0xFF ) + "." +
               ((i >> 16 ) & 0xFF) + "." +
               ((i >> 8 ) & 0xFF) + "." +
               ( i & 0xFF) ;
}

Попробуйте эту ссылку

http://www.droidnova.com/get-the-ip-address-of-your-device 0,304.html

Также вы можете попробовать эту команду ADB Shell NetCfg

InetAddress iA=InetAddress.getLocalHost();
System.out.println(iA.getHostAddress());

Смотрите также

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top