在Android应用中获取手机IP地址的多种方法

本文将介绍三种在Android应用中获取手机IP地址的方法,并提供详细的代码示例。这些方法分别利用了WifiManager、NetworkInterface和Socket类,可以帮助开发者快速实现手机IP地址获取功能。

1. 使用WifiManager获取IP地址

public String getIpAddress() {
    WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
    int ipAddress = wifiManager.getConnectionInfo().getIpAddress();
    String ip = ((ipAddress >> 0) & 0xFF) + '.' + ((ipAddress >> 8) & 0xFF) + '.' + ((ipAddress >> 16) & 0xFF) + '.' + ((ipAddress >> 24) & 0xFF);
    return ip;
}

2. 使用NetworkInterface获取IP地址

public String getIpAddress() {
    try {
        List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
        for (NetworkInterface intf : interfaces) {
            List<InetAddress> addrs = Collections.list(intf.getInetAddresses());
            for (InetAddress addr : addrs) {
                if (!addr.isLoopbackAddress() && addr instanceof Inet4Address) {
                    return addr.getHostAddress();
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return '';
}

3. 使用Socket获取IP地址

public String getIpAddress() {
    try {
        Socket socket = new Socket();
        socket.connect(new InetSocketAddress('google.com', 80));
        String ip = socket.getLocalAddress().getHostAddress();
        socket.close();
        return ip;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return '';
}

点击函数实现逻辑

public void onClick(View view) {
    if(view.getId() == R.id.btn_get_ip) {
        String ip = getIpAddress();
        TextView tvIp = (TextView) findViewById(R.id.tv_ip_address);
        tvIp.setText(ip);
    }
}

通过以上三种方法,开发者可以根据实际需求选择最适合的获取手机IP地址的方法。

注意:

  • 在使用WifiManager获取IP地址时,需要确保手机已连接到Wi-Fi网络。
  • 使用NetworkInterface获取IP地址时,可能会返回多个IP地址,需要根据实际情况选择合适的IP地址。
  • 使用Socket获取IP地址时,需要确保网络连接正常。

希望本文能够帮助开发者快速实现手机IP地址获取功能。如有任何问题,请随时留言讨论。

Android 获取手机IP地址:三种方法及示例代码

原文地址: https://www.cveoy.top/t/topic/mVy6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录