java 默认网关,java 获得默认网关 和 子网掩码 本机
Java codepublic static void main(String[] args) throws IOException {
String os = System.getProperties().getProperty("os.name"); //得到操作系統 xp 為"Windows XP" 其他的的樓主自己去試試
Process pro = Runtime.getRuntime().exec("ipconfig");
BufferedReader br = new BufferedReader(new InputStreamReader(pro.getInputStream()));
List rowList = new ArrayList();
String temp;
while((temp = br.readLine()) != null){
rowList.add(temp );
}
for (String string : rowList) {
String sm= os.equals("Windows XP") ? "Subnet Mask" : "子網掩碼" ; //這里只判斷了win7個xp
if(string.indexOf("Subnet Mask") != -1){
Matcher mc = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}").matcher(string);
if(mc.find()){
System.out.println("子掩碼:" + mc.group());
}else{
System.out.println("子掩碼為空");
}
};
String dg = os.equals("Windows XP") ? "Default Gateway" : "默認網關" ; //這里只判斷了win7個xp
if(string.indexOf("Default Gateway") != -1){
Matcher mc = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}").matcher(string);
if(mc.find()){
System.out.println("默認網關:" + mc.group());
}else{
System.out.println("默認網關為空");
}
return;
};
}
}
------解決方案--------------------探討
用8樓的結果 我子網掩碼是 255.255.255.0 得到的卻是255.255.255.255
------解決方案--------------------
使用java.lang.Process類啊
將"ipconfig /all"傳進去
Java code/**
* 獲取linuxShell命令結果.
* @param cmd 指令
* @return 指令結果
*/
public String getRuntimeExec(final String cmd) {
BufferedReader bufferedReader = null;
Process process = null;
StringBuffer sb = new StringBuffer();
try {
String buffer;
//System.out.println(cmd);
process = Runtime.getRuntime().exec(cmd);
// 得到結果
bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((buffer = bufferedReader.readLine()) != null) {
sb.append(buffer + "\n");
}
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
}
return sb.toString();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("execute failed.");
return null;
} finally {
// 清理
try {
if (bufferedReader != null) {
bufferedReader.close();
bufferedReader = null;
}
if (process != null) {
process.destroy();
process = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
------解決方案--------------------
也來弄一段:,只能得到掩碼Java codepublic static void main(String args[]) {
try {
for (Enumeration nis = NetworkInterface.getNetworkInterfaces();
nis != null && nis.hasMoreElements();) {
NetworkInterface ni = nis.nextElement();
System.out.println("網絡適配器:" + ni.getDisplayName());
for (InterfaceAddress ifAddr : ni.getInterfaceAddresses()) {
System.out.println("IP:" + ifAddr.getAddress().getHostAddress());
System.out.println("Mask:" + getMask(ifAddr.getNetworkPrefixLength()) );
//System.out.println("Borad:"+ ifAddr.getBroadcast().getHostAddress());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 返回指定長度的掩碼的字符串,如,長度為8的掩碼,返回255.0.0.0;長度為24的掩碼,返回255.255.255.0
* 注:只適用于IPV4
* @param maskLength 掩碼長度
* @return
*/
private static String getMask(int maskLength){
StringBuffer maskStr = new StringBuffer();
int mask = 0xFFFFFFFF << 32 - maskLength ;
for(int i = 3 ;i >= 0;i--){
maskStr.append( ( mask >> (8*i) ) & 0xFF);
if(i>0){
maskStr.append(".");
}
}
return maskStr.toString();
}
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java 默认网关,java 获得默认网关 和 子网掩码 本机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于php构建APi流程,php – 如
- 下一篇: 2022不愁销路的小型加工厂 这些适合