Android开发获取手机内网IP地址与外网IP地址的详细方法与源码实例
在Android开发中,我们可以使用以下方法获取手机的内网IP地址和外网IP地址。
获取内网IP地址
要获取手机的内网IP地址,我们可以使用WifiManager
类。以下是获取内网IP地址的步骤:
- 在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />
<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />
- 在Java代码中,使用以下代码获取内网IP地址:
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
public String getInternalIPAddress(Context context) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = String.format(\"%d.%d.%d.%d\",
(ipAddress & 0xff),
(ipAddress >> 8 & 0xff),
(ipAddress >> 16 & 0xff),
(ipAddress >> 24 & 0xff));
return ip;
}
- 调用
getInternalIPAddress()
方法获取内网IP地址:
String internalIP = getInternalIPAddress(getApplicationContext());
获取外网IP地址
要获取手机的外网IP地址,我们可以使用网络请求来获取公网IP地址。以下是获取外网IP地址的步骤:
- 在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name=\"android.permission.INTERNET\" />
- 在Java代码中,使用以下代码获取外网IP地址:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
public String getExternalIPAddress() {
try {
URL url = new URL(\"https://api.ipify.org\");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String ipAddress = reader.readLine().trim();
reader.close();
return ipAddress;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
- 调用
getExternalIPAddress()
方法获取外网IP地址:
String externalIP = getExternalIPAddress();
示例说明
以下是两个示例说明,展示如何使用上述方法获取手机的内网IP地址和外网IP地址。
示例1:获取内网IP地址
String internalIP = getInternalIPAddress(getApplicationContext());
Log.d(\"Internal IP\", internalIP);
输出结果:
D/Internal IP: 192.168.1.100
示例2:获取外网IP地址
String externalIP = getExternalIPAddress();
Log.d(\"External IP\", externalIP);
输出结果:
D/External IP: 203.0.113.1
以上就是获取手机内网IP地址和外网IP地址的详细方法和源码实例。通过使用WifiManager
类和网络请求,我们可以轻松地获取这些信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android开发获取手机内网IP地址与外网IP地址的详细方法与源码实例 - Python技术站