Android获取IP地址的第一种方法(判断的地方有瑕疵),代码:

final List<String> uris = new ArrayList<>();
InetAddress ip = null;
Enumeration<NetworkInterface> netInterfaces = null;
try {netInterfaces = NetworkInterface.getNetworkInterfaces();
} catch (SocketException e) {e.printStackTrace();
}
while (netInterfaces.hasMoreElements()) {NetworkInterface ni = netInterfaces.nextElement();// 遍历所有ipEnumeration<InetAddress> ips = ni.getInetAddresses();while (ips.hasMoreElements()) {//我的需求是匹配10.42.0.1的地址ip = ips.nextElement();String fip = ip.getHostAddress();if (fip.trim().length() >= 7) {if (fip.trim().substring(0, 7).equals("10.42.0")) {uris.add(fip);if (uris.size() > 0) {try {this.setCustomMaterUri(new URI("http://10.42.0.1:11311/"));} catch (URISyntaxException e) {e.printStackTrace();}} else {Toast.makeText(this, "IP地址错误", Toast.LENGTH_SHORT).show();}}}}
}
上面这种方法没有明确的把Ip地址按类区分开,下面这种方式是优化后的版本,可以封装成一个工具类,详细代码如下:
public class Util {public static final String ACRA_REPORT_ADDRESS = "http://developer.miivii.com:5984/acra-bugreport/_design/acra-storage/_update/report";public static final String ACRA_REPORT_LOGIN = "bugreport";public static final String ACRA_REPORT_PASSWORD = "miiviibugreport";// instead by your own machine IP address which you will connect to.public static final String ROS_MASTER_URI = "http://192.168.31.213:11311/";public static String getLocalIpAddress(){try{for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();){NetworkInterface intf = en.nextElement();if(!intf.getDisplayName().equals("eth0")) continue;for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();){InetAddress inetAddress = enumIpAddr.nextElement();if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address){return inetAddress.getHostAddress().toString();}}}}catch (SocketException ex){Log.e("WifiPreference IpAddress", ex.toString());}return null;}public static boolean configDevice(){String ip = getLocalIpAddress();Log.e("========","======ip==="+ip);if(ip == null) return false;if(ip.substring(0,8).equals("10.42.0.")) return true;return false;}public static URI getCustomURI() {URI customMasterUri = null;try {customMasterUri = new URI("http://10.42.0.1:11311/");} catch (URISyntaxException e) {throw new RosRuntimeException(e);}return customMasterUri;}
}
相信会有用。

Android获取设备的IP地址的两种方法相关推荐

  1. C#如何获取本机IP地址,两种方法

    using System; using System.Net;namespace test {class Program{static void Main(string[] args){//获取本机所 ...

  2. Android手机获取IP地址的两种方法

    Android手机获取IP地址的两种方法 本文章讲解了WIFI和GPRS两种情况下获取手机IP地址的方法 1.使用WIFI 1,首先设置用户权限 AndroidManifest.xml添加: < ...

  3. android ip查看工具,安卓手机查看IP地址的两种方法

    无论是电脑链接宽带上网还是手机链接wifi上网,当我们在链接网络后,会自动分配一个独立的IP地址,对于电脑端的上网IP地址我们可通过ipconfig/all命令来查看,那么如果在手机端的话应该如何查看 ...

  4. android查ip地址,安卓手机查看IP地址的两种方法,  二、进入手机状态

    安卓手机查看IP地址的两种方法, 二.进入手机状态 无论是电脑链接宽带上网还是手机链接wifi上网,当我们在链接网络后,会自动分配一个独立的IP地址,对于电脑端的上网IP地址我们可通过ipconfig ...

  5. PHP获取用户访问IP地址的5种方法

    PHP获取用户访问IP地址的5种方法: //方法1: <?php                                                                 ...

  6. linux编程获取本机IP地址的三种方法

    这是一项不太清晰而且没有多大意义的工作.一个原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的,比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡 ...

  7. Ubuntu 18.04 查看本机IP地址的两种方法 ip和ifconfig

    Linux查看本机IP有两种方法,一种方法是使用废弃的ifconfig,第二种方法是使用内置的ip. 在Ubuntu 18.04中, net-tools 工具包没有被默认安装,这就意味着不能使用 if ...

  8. (转载)Linux编程获取本机IP地址的三种方法

    (转载)http://blog.csdn.net/jcwKyl/article/details/6324147 这 是一项不太清晰而且没有多大意义的工作.一个原因是网络地址的设置非常灵活而且都是允许用 ...

  9. 查找网站的IP地址的两种方法

    一.浏览器查询 1.打开任意一个浏览器,在输入框输入"IP查询",会出现多个查询页面点击相关网址即可. 2.在其中输入要查询的网址域名后点击查询即可,下方解析地址即为该网站的IP地 ...

  10. Android 获取手机中的图片信息的两种方法

    1, Android 使用ContentProvider扫描手机中的图片 // 必须在查找前进行全盘的扫描,否则新加入的图片是无法得到显示的(加入对sd卡操作的权限)//todo 仅限于android ...

最新文章

  1. 人工智能70年,研究者们最不愿意面对的惨痛教训是……
  2. 【Android 电量优化】电量优化 ( 网络状态获取 | 主动获取 WIFI 状态 | 被动获取 WIFI 状态 )
  3. 中国金刚石线行业“十四五规划”与未来产销需求预测报告2021-2027年
  4. 【深度学习】短袖短裤识别算法冠军方案总结
  5. Jenkins的卸载
  6. eclipse怎么导出一个Java项目(莫要错过,最详细教程!)
  7. Detection of Extraterrestrial KMP匹配 重复k次子串 好题
  8. 使用EmBitz开发STM32项目开发环境配置
  9. 手机闪存速度排行_2020年双十二3000-4000元高性价比手机推荐!
  10. Mybatis在Maven项目中使用
  11. 项目遇到技术难题,领导让我假招聘套取解决方案,我没有照做,结果15天后蒙了
  12. 有哪些写给自己的句子?
  13. iOS 5与iOS 6的 low-memory 处理
  14. 在可部署到brew真机上的程序包构建完之后又要如何将该程序包发布到真机上呢...
  15. 狸窝音频剪辑软件_干货资源之精选音频剪辑软件工具
  16. 【图像检测-边缘检测】基于PCNN实现图像边缘提取附matlab代码
  17. 鱼眼相机矫正,按经纬度展开为环视图
  18. oracle imp 跳过表,关于oracle imp 导入避开若干表
  19. [UE4]Viewport中摄像机镜头缩放速度修改
  20. Haskell大世界+思考

热门文章

  1. 样本不均衡及其解决办法
  2. 玩转Python,30行Python代码刷王者荣耀金币
  3. DXF文件结构与示意
  4. word制作流程图有没有橡皮擦_WORD文档绘图,里面的橡皮擦在哪里啊
  5. 容迟网络中的路由算法笔记(二)
  6. Ghost网络克隆详细步骤教程(网刻教程)
  7. Medusa 破解centos密码
  8. 路由器静态路由配置实验
  9. Linux环境下利用perl脚本批量筛选VCF文件指定样本
  10. SQL(10)_PRIMARY KEY 约束