在没有WIFI的Android中的USB Tethering模式下的PC的IP地址,以编程方式

时间:2011-06-09 07:54:32

标签: android usb ip

如何在不使用WIFI Manager的情况下以编程方式获取Android手机在USB Tethering模式下连接的PC的IP地址,默认网关和端口号?

我使用过网络接口,但它没有给我正确的信息,还有其他方法吗?

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 个答案:

答案 0 :(得分:1)

好的,这是我到达的解决方案,从通过网络接口收到的地址,我删除地址中的最后一部分,如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){ }
         }