300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > android 获取以太网的动态IP地址 子网掩码 DNS地址 网关地址

android 获取以太网的动态IP地址 子网掩码 DNS地址 网关地址

时间:2024-04-18 04:03:26

相关推荐

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();}}

/huahua22/IPDemo

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。