получить IP-адрес компьютеров в сети WIFI на эмуляторе Android - PullRequest
1 голос
/ 20 января 2011

Я хотел бы программно найти IP-адреса компьютеров, которые подключены через WiFi к устройству Android или эмулятору.Как мне это сделать?

Ответы [ 4 ]

2 голосов
/ 21 января 2011

Можете ли вы поделиться logcat, я подозреваю, что может быть какая-то другая проблема. Попробуйте этот код (как есть) в примере приложения, чтобы проверить, только работает ли IP-адрес Wi-Fi

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();

int ipAddress = wifiInfo.getIpAddress();

String ip = null;

ip = String.format("%d.%d.%d.%d",
(ipAddress & 0xff),
(ipAddress >> 8 & 0xff),
(ipAddress >> 16 & 0xff),
(ipAddress >> 24 & 0xff))
1 голос
/ 24 февраля 2013

Если вы хотите определить IP-адрес «эмулятора» или устройства Android, подключенного к любой сети, используйте этот код в своей программе. он даст вам точный IP-адрес, который сеть присвоила вашему устройству.

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())
                         { 
                               String Ip= inetAddress.getHostAddress().toString();
                               //Now use this Ip Address...
                         }   
                       }
                  }

            }
     catch (SocketException obj) 
     { 
       Log.e("Error occurred during IP fetching: ", obj.toString());
      }
1 голос
/ 06 января 2012

Как указано в другой теме, эмулятор Android работает в виртуальной частной сети.

Это означает, что эмулятор находится не в той же сети, что и ваш компьютер, но в виртуальной.Ни один эмулятор не может видеть другие устройства, ни другие эмуляторы, ни другие устройства не могут видеть эмуляторы.

Помимо этого у меня есть вопрос:

Как я могу получить IP-адрес имени хоста, используяWifiManager?

Например, мой компьютер находится в той же локальной сети, что и мой телефон Android (не эмулятор), и у него есть имя хоста, например User-PC.Когда я пытаюсь получить IP с InetAddress.getByName («Пользователь-ПК»);в Java-приложении я получаю IP-адрес локальной сети, например 192.168.1.100, но когда я пробую его на телефоне, он не работает .. Странно, но я могу установить соединение, если знаю IP, но не могу решить его изимя хоста.

Есть идеи?

0 голосов
/ 20 января 2011
...