检测安卓设备自身IP地址的代码?

3

我想了解一下能够检测Android设备的IP地址和客户端名称的代码,以便在我们的应用程序中使用这个IP地址和客户端名称。

有人可以帮我吗? 提前感谢。

2个回答

7

如果您在Android手机上运行此代码,则可以查看您自己的IP地址。

try{
      InetAddress ownIP=InetAddress.getLocalHost();
      System.out.println("IP of my Android := "+ownIP.getHostAddress());
      }catch (Exception e){
      System.out.println("Exception caught ="+e.getMessage());
      }

如果您想知道绑定到您的应用程序的任何客户端的IP地址,请使用

Socket socket = serverSocket.accept();  // accept connection                                            


                    System.out.println("Remote IP:"+socket.getInetAddress());

                    System.out.println("Remote Port:"+socket.getPort());                

你的回答中的 serverSocket 对象是什么?你是如何初始化它的? - user2342558

4
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(LOG_TAG, ex.toString());
     }

     return null;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接