获取ip地址
1.使用WIFI
首先设置用户权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission
>
//获取wifi服务
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = intToIp(ipAddress);
TextView tv=(TextView) findViewById(R.id.ip);
tv.setText("本机ip:"+ip);
private String intToIp(int i) {
return (i & 0xFF ) + "." +
((i >> 8 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
( i >> 24 & 0xFF) ;
}
2.使用GPRS
//首先,设置用户上网权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
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("WifiPreference IpAddress", ex.toString()); }
return null;
}
分享到:
相关推荐
以下是对“Android获取IP地址”这一主题的深入解析。 ### 知识点一:理解NetworkInterface `NetworkInterface`是Java标准库中的一个类,它表示系统中的网络接口,如以太网卡或Wi-Fi适配器。在Android设备上,`...
android获取IP地址,运营商名称以及位置信息,比较实用的小工具,可以用到代码中。 IP:是利用 jstun 包获取的。 ISP:是利用 sina webservice 获取的。 有错请指正。
这是一个封装好的工具类,可以查看本机的ip地址和物理(mac)地址。没有wifi的情况下,也可以查看物理地址。
通过异步任务来获取当前用户的ip地址,使用的时候调用getRemoteIP方法就可以,需要传一个可以获取公网ip的url地址,这个百多很多,比如,搜狐,淘宝之类的都有,同时还有一个超时的任务,具体看代码了
获取IP地址通常需要`ACCESS_NETWORK_STATE`和`INTERNET`权限。前者允许应用查询网络状态,后者则允许应用打开网络套接字。 2. **WiFiManager和ConnectivityManager**:这两个是Android提供的用于管理网络连接的重要...
Android获取实时连接热点的设备IP是指在Android系统中获取当前热点连接的设备IP地址的相关技术。主要涉及到Android系统中获取Wifi热点设备的Ip地址的代码实现。 知识点一:/proc/net/arp文件 在Android系统中,...
判断网络是否可用: 注意!是判断网络是否可用,但网络可用不代表一定能上外网的! public static boolean isNetworkAvailable(Context context) { ConnectivityManager manager = (ConnectivityManager) context...
网上找了下,好像这方面的代码比较少,而且大部分都不可用,所以自己写了一个小工具,可以获得外网的IP、城市等信息。... testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
更常见的方式是遍历所有可用的网络接口(`NetworkInterface`)来查找连接到互联网的接口,然后从中获取IP地址。这通常涉及到`NetworkInterface.getNetworkInterfaces()`方法,以及`Enumeration<InetAddress>`接口的...
在Android系统中,获取设备的Mac地址是一项常见的需求,特别是在设备标识、网络连接管理和蓝牙通信等场景下。然而,由于隐私保护政策的变化,Android对于获取Mac地址的方式进行了限制,使得这个过程比以前复杂了一些...
然而,在某些情况下,Android 设备可能无法通过 DHCP 获取 IP 地址,导致连接 Wi-Fi 网络失败。本文将对 Android 中 DHCP 获取 IP 失败的原因和解决方法进行分析。 一、Android 中 DHCP 获取 IP 的流程 在 Android...
Android平台获取IP地址的方法主要分为两种:通过WIFI服务获取和通过遍历网络接口获取。WIFI方式适用于设备通过WIFI连接网络,而GPRS/3G方式适用于移动数据连接。在实际应用中,可能需要结合设备的网络状态来选择合适...
因此,在获取IP地址时,需要进行格式转换。 通过ConnectivityManager判断网络环境、getLocalIpAddress()获取本地IP地址和intToIp()获取WI-FI IP地址,这三种方式可以帮助我们准确获取手机IP地址,满足微信支付等...
本话题关注的是如何在JNI中获取Android设备的MAC地址。 MAC(Media Access Control)地址是网络设备的物理地址,每个设备在网络中都有一个唯一的MAC地址,用于数据传输中的寻址。在Android系统中,由于安全和隐私...
综上所述,这个“Android获取IP的程序”涵盖了Android网络编程中的多个重要知识点,包括权限管理、网络状态检查、IP地址获取等。开发者可以通过此程序学习如何在Android应用中实现类似功能,为用户提供更丰富的网络...
因此,获取IP地址时,我们通常关注的是对外可用的那个IP,通常是Wi-Fi或移动数据连接的IPv4地址。 以下是获取手机IP地址的一种常见方法,利用Java的`java.net.NetworkInterface`和`java.net.InetAddress`类: ```...
在Android中,获取IP地址通常涉及以下几个关键步骤: 1. **权限声明**:在AndroidManifest.xml文件中,你需要添加`ACCESS_WIFI_STATE`权限,这样你的应用才能访问WiFi的状态信息: ```xml <uses-permission ...
### 二、获取IP地址 IP地址用于在网络层标识设备,分为IPv4和IPv6两种类型。在Android中,可以遍历所有网络接口,从中筛选出非回环地址,从而获取到设备的真实IP地址。 #### 代码解析: ```java public static ...
1. **检查网络状态**:在获取IP地址之前,需要确认设备已经连接到网络。可以使用`ConnectivityManager`来检查网络连接的状态。例如: ```java ConnectivityManager connectivityManager = (ConnectivityManager) ...