• 关于获取android的wifiip地址


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

          由于项目需要获取当前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 }
  • 相关阅读:
    第三周
    第二周
    第一周
    jenkins实用
    codis 部署和测试
    openssl心脏出血漏洞修复
    shell自动发布脚本
    codis部署安装及性能测试
    redis 数据的恢复测试
    对reids 服务器性能测试
  • 原文地址:https://www.cnblogs.com/error404/p/3108785.html
Copyright © 2020-2023  润新知