android 获取以太网的动态IP地址,子网掩码,DNS地址,网关地址
局域网的配置,之前查找了很多方法都是关于EthernetManager(已隐藏,无法直接调用),试过很多种但是还是没成功调到过这个对象,然后直接利用adb 命令获取
获取以太网的连接信息
1.获取所有有效网关
/*** @return 获取所有有效的网卡*/public static String[] getAllNetInterface() {ArrayList<String> availableInterface = new ArrayList<>();String[] interfaces = null;try {//获取本地设备的所有网络接口Enumeration nis = NetworkInterface.getNetworkInterfaces();InetAddress ia = null;while (nis.hasMoreElements()) {NetworkInterface ni = (NetworkInterface) nis.nextElement();Enumeration<InetAddress> ias = ni.getInetAddresses();while (ias.hasMoreElements()) {ia = ias.nextElement();if (ia instanceof Inet6Address) {continue;// skip ipv6}String ip = ia.getHostAddress();// 过滤掉127段的ip地址if (!"127.0.0.1".equals(ip)) {if (ni.getName().substring(0, 3).equals("eth")) {//筛选出以太网availableInterface.add(ni.getName());}}}}} catch (SocketException e) {e.printStackTrace();}int size = availableInterface.size();if (size > 0) {interfaces = new String[size];for (int i = 0; i < size; i++) {interfaces[i] = availableInterface.get(i);}}return interfaces;}
2.获取指定网卡ip
/*** 获取指定网卡ip** @param netInterface* @return* @throws SocketException*/public static String getIpAddress(String netInterface) throws SocketException {String hostIp = null;try {Enumeration nis = NetworkInterface.getNetworkInterfaces();InetAddress ia = null;while (nis.hasMoreElements()) {NetworkInterface ni = (NetworkInterface) nis.nextElement();if (ni.getName().equals(netInterface)) {Enumeration<InetAddress> ias = ni.getInetAddresses();while (ias.hasMoreElements()) {ia = ias.nextElement();if (ia instanceof Inet6Address) {continue;// skip ipv6}String ip = ia.getHostAddress();// 过滤掉127段的ip地址if (!"127.0.0.1".equals(ip)) {hostIp = ia.getHostAddress();break;}}}}} catch (SocketException e) {e.printStackTrace();}return hostIp;}
3.获取DNS地址 ----“getprop dhcp.eth0.dns1”
/*** 根据adb shell命令获取* DNS地址** @param name网卡名称* @return*/public static String getLocalDNS(String name) {Process cmdProcess = null;BufferedReader reader = null;String dnsIP = "";try {cmdProcess = Runtime.getRuntime().exec("getprop dhcp." + name + ".dns1");reader = new BufferedReader(new InputStreamReader(cmdProcess.getInputStream()));dnsIP = reader.readLine();return dnsIP;} catch (IOException e) {return null;} finally {try {reader.close();} catch (IOException e) {}cmdProcess.destroy();}}
4.获取子网掩码----“getprop dhcp.eth0.mask”
/*** 获取掩码** @param name* @return*/public static String getLocalMask(String name) {Process cmdProcess = null;BufferedReader reader = null;String dnsIP = "";try {cmdProcess = Runtime.getRuntime().exec("getprop dhcp." + name + ".mask");reader = new BufferedReader(new InputStreamReader(cmdProcess.getInputStream()));dnsIP = reader.readLine();return dnsIP;} catch (IOException e) {return null;} finally {try {reader.close();} catch (IOException e) {}cmdProcess.destroy();}}
5.网关地址----“getprop dhcp.eth0.gateway”
/*** 获取网关地址** @param name* @return*/public static String getLocalGATE(String name) {Process cmdProcess = null;BufferedReader reader = null;String dnsIP = "";try {cmdProcess = Runtime.getRuntime().exec("getprop dhcp." + name + ".gateway");reader = new BufferedReader(new InputStreamReader(cmdProcess.getInputStream()));dnsIP = reader.readLine();return dnsIP;} catch (IOException e) {return null;} finally {try {reader.close();} catch (IOException e) {}cmdProcess.destroy();}}
https://github.com/huahua22/IPDemo
android 获取以太网的动态IP地址,子网掩码,DNS地址,网关地址相关推荐
- Android 获取局域网内网IP地址
Android 获取局域网内网IP地址 废话 上代码 完事 废话 拿局域网IP一般用在tcp通讯或udp通讯上,下次再整理下这类通讯的框架 上代码 /*** 网络工具* 获得局域网IP地址* @aut ...
- 已知IP地址,如何计算其子网掩码,默认网关地址,网络地址等。
原文地址https://blog.csdn.net/here962464/article/details/78940056 首先要铺垫一些基础知识,整个互联网就是一个单一的.抽象的网络.IP地址就是给 ...
- java获取公网ip_动态IP变固定IP,国内IP变海外IP,助力企业数据传输提高工作效率...
在IPv4的地址数量越来越枯竭的情况下,大多数非专线的个人用户或者企业用户的ip地址都是动态ip地址,甚至很多都被更改为私网ip了,这给个人或者企业用户带来了很大不便.下面我们就来解决这些问题,让你可 ...
- Android 获取本地外网IP、内网IP、计算机名等信息
一.获取本地外网IP public static String GetNetIp() { URL infoUrl = null; InputStream inStream = null; try { ...
- ip地址 子网掩码与默认网关
1.ipv4: IP地址由四段组成,每个字段是一个字节,8位,最大值是255 IP地址由两部分组成,即网络地址和主机地址.网络地址表示其属于互联网的哪一个网络,主机地址表示其属于该网络中的哪一台主机. ...
- Android 获取客户端外网IP和服务端IP
项目组最近添加新需求,要获取客户端和服务端IP,削微研究了一下,总结如下: 1.获取客户端外网IP(为啥不要内网,因为那玩意没鸟用,外网IP起码能确定客户端的地区位置) 目前只有一种方法可以获取:发送 ...
- Linux网络知识详解以及demo(Centos6、7)——OSI、TCP、UDP、IP、子网掩码/划分、网关、路由、广播、虚拟网络、网卡、交换机、DNS、ARP
ip地址:网络通讯标识信息 子网掩码:在局域网中可以有多少个主机 网关:从一个局域网到另一个局域网的必经之路 网络号:主机位全为0 广播地址:主机位全为1 子网掩码:网络位全为1,主机位全为0 虚拟软 ...
- ip、子网掩码、默认网关以及传输过程
IP: IP地址:由网络部分 和 本机部分 组成 比如IP地址为 192.168.3.12 对应的二进制为 11000000 10101000 00000011 00001100 子网掩码: 子网掩码 ...
- 由ip计算子网掩码和默认网关
超过255台电脑IP和子网掩码的一些知识我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 0.0.0.0 到127.255.255.255 B类IP段 128.0.0 ...
- IP,子网掩码,默认网关
IP地址: 是给每个连接在Internet上的主机分配的一个32bit地址. 地址有两部分组成,一部分为网络地址,另一部分为主机地址. IP地址分为A.B.C.D.E 5类.常用的是B和C两类. 网络 ...
最新文章
- 0基础学python看什么书-0基础学Python入门书籍应该看什么?
- entity-model-first
- 超适合小白的python新手教程
- linux版本FTP下载
- 【C++】函数的形参
- 管理新语:主管要辅导员工转正
- sikuli+eclipse对于安卓app自动化测试的应用(第一次写博客,有些语言还不太专业,望海涵)...
- html字体版权,字体在网站中的版权问题
- Java与网络调试助手TCP通信
- iOS 的 APP 如何适应 iPhone 5s/6.6s/6.6sPlus 三种屏幕的尺寸?
- uni-app 简介
- CTO能力知识地图正式发布
- WinCC界面中通过插件打开pdf文件
- python求15 17 23 65 97的因数_Python练习题
- 【播放器】播放器对比
- java表白 520
- 服务器最高安全防御策略选择与差异
- 用Rstudio写.Sh/Shell文件
- 三千万单车产能大跃进:供应链提价,矛盾一触即发
- android 字体加粗_华为nova发布新字体LOGO,设计把我酷到了!
热门文章
- android killer java_Android反编译工具的使用-Android Killer
- openwrt 锐捷 单线多拨
- 解决IE7无法设置空白页的办法
- 使用fsck命令检查文件系统错误
- 论文笔记 | code representation(代码表示学习)系列
- 未安装360系列应用情况下,Edge浏览器主页被360篡改,一直显示360导航
- 7z怎么解压linux,7z 常用解压命令
- phpmyadmin突破secure_file_priv写shell 的渗透
- Java B组蓝桥杯第七届国赛:圆圈舞
- ie上直接打开服务器word文档,win7 ie11直接打开word