Android 获取手机IP地址:三种方法及示例代码
在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地址获取功能。如有任何问题,请随时留言讨论。
原文地址: https://www.cveoy.top/t/topic/mVy6 著作权归作者所有。请勿转载和采集!