IP-адрес ПК в режиме USB Tethering в Android без WIFI, программно - PullRequest
4 голосов
/ 09 июня 2011

Как программно получить IP-адрес, шлюз по умолчанию и номер порта ПК, к которому подключен телефон Android в режиме USB-модема, без использования WIFI Manager?

Я использовал сетевые интерфейсы, но это не дает мне правильную информацию, есть ли другой способ?

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()) {
                    address += inetAddress.getHostAddress().toString() ;
                }
            }
        }

1 Ответ

3 голосов
/ 16 июня 2011

Хорошо, вот круговое решение, которое я достиг, с адреса, полученного через сетевой интерфейс, я удаляю последний раздел в адресе, как 192.168.1.40, я удаляю 40 и повторяю цикл, начиная с 192.168.1.0 и узнать порт, который на самом деле подключается. Фрагмент ниже

for(idx=0; idx <=255; idx++)
         {
             try
             {
                 t[idx] = new Thread(new Runnable() {
                        public void run() {
                            str = IPpart + "." + idx;
                                            socket = new Socket(str, PORT);
                                   IP = socket.getInetAddress().toString();
                             Gateway = socket.getLocalAddress().toString();
                        }
                    });
                 t[idx].setName("IPclass");
                 t[idx].start();
                 if(IP != "")
                 {
                     closeThread();
                     break;
                 }
             }catch(Exception ex){ }
         }
...