java为什么这个方法在安卓中没有给我子网掩码
我有一个方法,可以使用安卓 shell命令获取子网掩码。我在adb和works上进行了测试;然而,我只是把它放在一个方法中,我可以在安卓监视器控制台上显示输出。如果有更简单的方法,请提供建议。谢谢顺便说一句,我在主活动线程中运行这个(没有异步任务)
/*
* method to return private subnet mask
*/
public String getPrivateSubnet() {
String output = "";
final String SUBNET_CMD = "/system/bin/ifconfig wlan0 | find \"Mask\"";
try {
Process p = Runtime.getRuntime().exec(SUBNET_CMD);
// p.wait();
Log.v("SUBNET OUTPUT", p.toString());
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
Log.v("SUBNET", inputLine);
}
in.close();
} catch (IOException ex) {
ex.printStackTrace();
}
Log.v("SUBNET", output);
return output;
}
# 1 楼答案
如果要使用ifconfig,请使用:
编辑:为了找到这个,我对自己做了一些非常快速的编码。是的,Java API允许您使用NetworkInterface类获取接口的ipv4子网掩码。我写了一段代码,可能对你有帮助。此代码为您提供每个接口的CIDR值(例如:24将是255.255.255.0)。更多信息请参见此处:https://en.wikipedia.org/wiki/IPv4_subnetting_reference