andorid跳过系统API获取以太网IP,网关,DNS,MAC的方法

原创 2018年04月17日 18:37:51

最近在android平台上构建出windows的效果,之前通过EthernetManager和EthernetDevInfo获取以太网相关信息,但为了边敲代码边运行,想要跳过系统层的api调用,方法如下:

  • 获取DNS:
private String getLocalDNS(){
          Process cmdProcess = null;
          BufferedReader reader = null;
          String dnsIP = "";
          try {
              cmdProcess = Runtime.getRuntime().exec("getprop dhcp.eth0.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();
              }
    }
  • 获取网关:
private String getLocalGATE(){
        Process cmdProcess = null;
        BufferedReader reader = null;
        String dnsIP = "";
        try {
            cmdProcess = Runtime.getRuntime().exec("getprop dhcp.eth0.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();
          }
    }
  • 获取ip地址:
private String getLocalGATE(){
        Process cmdProcess = null;
        BufferedReader reader = null;
        String dnsIP = "";
        try {
            cmdProcess = Runtime.getRuntime().exec("getprop dhcp.eth0.ipaddress");
            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();
          }
    }

上面的方法只有使用的指令不一样,追求代码简洁的朋友可以合成一个方法来写,或者写入工具类中。

  • 其他相关指令:
root@android:/ # getprop | grep eth0
getprop | grep eth0
[dhcp.eth0.dns1]: [192.168.0.1]
[dhcp.eth0.dns2]: []
[dhcp.eth0.dns3]: []
[dhcp.eth0.dns4]: []
[dhcp.eth0.gateway]: [192.168.0.1]
[dhcp.eth0.ipaddress]: [192.168.0.180]
[dhcp.eth0.leasetime]: [3600]
[dhcp.eth0.mask]: [255.255.255.0]
[dhcp.eth0.pid]: [13800]
[dhcp.eth0.reason]: [PREINIT]
[dhcp.eth0.result]: [failed]
[dhcp.eth0.server]: [192.168.0.1]
[dhcp.eth0.vendorInfo]: []
[net.change]: [net.eth0.dns2]
[net.eth0.dns1]: [8.8.8.8]
[net.eth0.dns2]: [8.8.4.4]
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33826580/article/details/79978934

获取系统信息-3.3.linux应用编程和网络编程第3部分

本课程主要讲解了一些获取linux系统信息的函数,譬如获取时间相关的函数群,获取伪随机数序列的函数群和proc文件系统,目标是让大家学习相应的API和库函数,将来在项目中能够熟练应用之。
  • 2016年05月19日 20:31

Android 获取Ethernet IP、mask、dns、gw、mac

package android.net.ethernet; import java.net.InetAddress; import java.net.InterfaceAddress; im...
  • Fighting4344
  • Fighting4344
  • 2015-03-30 08:58:49
  • 2554

Android获取Mac地址-适配所有版本

最近由于项目需要MAC地址的记录,搞了一个通用的适配类,目前经过测试可以适配Android所有版本,我测试过的设备系统Android 4 5 6 7 7+都可以获取到,废话不多说直接上代码,简洁: ...
  • chaozhung
  • chaozhung
  • 2017-10-24 14:37:45
  • 2717

Android 6.0获取MAC地址

众所周知,Android 6.0系统,做出许多重大的变化,例如获取获取蓝牙MAC地址,如果使用‘BluetoothAdapter.getAddress()’将返回的是02:00:00:00:00:00...
  • aizhiqiang2
  • aizhiqiang2
  • 2016-12-16 11:23:00
  • 3826

获取WiFi MAC地址总结

今天对MAC地址的获取做了一些学习,目前网上获取MAC地址的方法主要如下: - 使用busybox ifconfig - 使用cat /sys/class/net/wlan0/address -...
  • crazyman2010
  • crazyman2010
  • 2016-01-05 17:55:17
  • 13678

android 获取设备信息的IP地址和Mac地址—亲测无误!!

前言方便的获取IP,Mac地址信息的工具类,记录一下,方便以后查阅。亲测无误。获取IP地址public static String getIpAddress(Context context){ ...
  • qq_34902522
  • qq_34902522
  • 2018-01-03 16:44:32
  • 478

Android获取Mac地址-兼容6.0及以上系统

在AndroidManifest.xml中加入以下权限: uses-permission android:name="android.permission.INTERNET" /> 然后写一个工具类...
  • YukimineRyuu
  • YukimineRyuu
  • 2017-04-01 10:56:36
  • 4973

Android mac地址获取的方法小结及可能出现的问题

这段时间项目遇到个问题,客户把移动设备回厂修理后再安装我们的项目,运行会报错。后来经过我仔细排查发现一个很诡异的问题,就是无法获取mac地址了。于是我仔细把获取mac地址的一些资料看了看,加上一些调试...
  • bit_kaki
  • bit_kaki
  • 2016-10-11 15:08:09
  • 9240

关于获取安卓设备的mac地址

原文地址:https://www.cnblogs.com/hankzhouAndroid/p/6554131.html 今日发现一个问题,系统要求从设备上获取一个唯一码作为当前登录用...
  • dodod2012
  • dodod2012
  • 2018-01-03 16:26:50
  • 517

android 获取当前设备的ip地址 mac地址 设备号 手机号 运营商信息

获取ip地址的时候,如果不注册权限的话,也不会报错,但是不会获取到ip地址(表示这个问题很蛋疼) 获取mac地址和设备号的时候,需要注册权限.不然会报错 所以权限很重要.记得加权限,记得加权限,记...
  • u010399316
  • u010399316
  • 2015-12-07 11:52:06
  • 1620
收藏助手
不良信息举报
您举报文章:andorid跳过系统API获取以太网IP,网关,DNS,MAC的方法
举报原因:
原因补充:

(最多只允许输入30个字)