关于获取android的wifi-ip地址

      最近做项目时,出了点小问题,在博客中记录下。

      由于项目需要获取当前android系统的wifi-ip地址,习惯性的随手在网上一搜,找了段代码就用了,也测试了,可以正常获取,代码如下:

 1 try {
 2     for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
 3         NetworkInterface intf = en.nextElement();
 4         for (Enumeration<InetAddress> enumIpAddr = intf
 5                 .getInetAddresses(); enumIpAddr.hasMoreElements();) {
 6             InetAddress inetAddress = enumIpAddr.nextElement();
 7             if (!inetAddress.isLoopbackAddress()) {
 8                 String ip = inetAddress.getHostAddress().toString();
 9             }
10         }
11     }
12 } catch (SocketException ex) {
13     ex.printStackTrace();
14 }

 

结果项目交付的时候出问题了,客户那边怎么也用不了,结果对方用的是3G卡,那个IP地址被上面的代码一起获取出来了,导致出问题了。以上代码是获取wifi和3G网络ip地址的。

 

如果只获取WIFI的IP地址,代码如下:

1         // 只获取wifi地址
2 WifiManager wifimanage = (WifiManager) getSystemService(Context.WIFI_SERVICE);//获取WifiManager  
3 //检查wifi是否开启  
4 if(wifimanage.isWifiEnabled()) { // 没开启wifi时,ip地址为0.0.0.0
5     WifiInfo wifiinfo= wifimanage.getConnectionInfo();  
6     String ip = intToIp(wifiinfo.getIpAddress());  
7 }  

 

1 //将获取的int转为真正的ip地址,参考的网上的,修改了下  
2 private String intToIp(int i)  {
3     return (i & 0xFF)+ "." + ((i >> 8 ) & 0xFF) + "." + ((i >> 16 ) & 0xFF) +"."+((i >> 24 ) & 0xFF);
4 }

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值