Получить IP-адрес компьютера в проекте Android, используя Java - PullRequest
6 голосов
/ 15 марта 2011

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

Что я имею в виду под IP-адресНапример, если я ipconfig использую командную оболочку:
DNS-суффикс для конкретного соединения.:
Link-local IPv6 Address.,,,,: f0 :: ed2: e3bf: 8206: 44% 13
IPv4-адрес.,,,,,,,,,,: 192.168.1.107 <- ЭТО ОДИН </b>
Маска подсети.,,,,,,,,,,: 255.255.255.0
Шлюз по умолчанию.,,,,,,,,: 192.168.1.1

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

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

Ответы [ 4 ]

8 голосов
/ 15 марта 2011
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 "";
    }
4 голосов
/ 15 марта 2011

Чтобы получить 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) ;
}
2 голосов
/ 15 марта 2011
InetAddress iA=InetAddress.getLocalHost();
System.out.println(iA.getHostAddress());

См. Также

2 голосов
/ 15 марта 2011

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

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

также вы можете попробовать эту команду adb shell netcfg

...