/**
* 系统设置 > 通用设置-网络设置-TCP/IP -查看
*
* IPADDR=192.168.1.128
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
IPV6ADDR=2001:250:4000:2000::53
IPV6_DEFAULTGW=2001:250:4000:2000::1
*
* 获取TCP/IP 信息
* @param page
* @return
*/
@PostMapping(value = "/getTCPandIP")
public ResponseResult<Object> getTCPandIP(){
log.info("==============<getTCPandIP-consoleSearch>==============");
try {
log.info("==============<getTCPandIP-consoleSearch>==============ipPath路径:"+ipPath);
String command="sh "+ipPath;
String str =shellService.execShell(command).trim();
log.info("==============<getTCPandIP-consoleSearch>==============获取TCP/IP 信息返回数据-str:"+str);
//String str= "IPADDR=192.168.1.128 NETMASK=255.255.255.0 GATEWAY=192.168.1.2 IPV6ADDR=2001:250:4000:2000::53 IPV6_DEFAULTGW=2001:250:4000:2000::1";
if(str!=null &&!str.isEmpty()){
str +="\n"
+ "prefixlen=64" ;
String newStr= processingEmptyCharacters(str);
JSONObject json = JSONObject.fromObject(newStr);
log.info("==============<getTCPandIP-consoleSearch>==============获取TCP/IP 信息 JSONObject:"+json.toString());
return ResponseResult.success(json);
}else{
return ResponseResult.success(str);
}
} catch (Exception e) {
log.info("==============<getTCPandIP-err>==============");
e.printStackTrace();
return ResponseResult.error();
}
}
/**
* 处理字符串中的空字符,将空字符转成逗号
* @param str
* @return
*/
private String processingEmptyCharacters(String str){
//拼接json串
String newStr = "{\"" +str +"\"}";
// String regEx = "[' ']+"; // 一个或多个空格
String regEx = "['\n']+"; // 换行
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(newStr);
//空字符转成逗号
String ss = m.replaceAll("\",\"").trim();
System.out.println("空字符转成逗号:"+ss);
//将等号转换成冒号
String lastSrt = ss.replaceAll("=","\":\"");
System.out.println("空字符转成冒号:"+lastSrt);
return lastSrt;
}
备份一下,将字符串转换成json格式。项目中用到了,仅作备份伪代码处理。。。
/**
* 系统设置 > 通用设置-网络设置-路由设置 -查询
* 10.15.150.0/24 via 192.168.150.253 1
192.168.1.0/24 via 192.168.61.2 1
* 获取路由设置信息
* @param page
* @return
*/
@PostMapping(value = "/getRouting")
public ResponseResult<Object> getRouting(){
log.info("==============<getRouting-consoleSearch>==============");
log.info("==============<delectRouting-consoleSearch>==============路径routePath:"+routePath);
try {
//TODO调查询路由设置 的实现
String command="sh "+routePath+" list";
String str = shellService.execShell(command).trim();
if(str!=null &&!str.isEmpty()){
log.info("==============<getRouting-consoleSearch>==============路由设置 -查询 返回数据-str:"+str);
// String str ="10.15.150.0/24 via 192.168.150.253 1 192.168.1.0/24 via 192.168.61.2 1";
//将字符串中的via去掉
Pattern p = Pattern.compile("via");
Matcher m = p.matcher(str);//这里把想要替换的字符串传进来
String newString = m.replaceAll("").trim();
//将字符串中的空格转换成逗号
// String regEx = "[' ']+"; // 一个或多个空格
String regEx = "['\n']+"; // 换行
Pattern pa = Pattern.compile(regEx);
Matcher ma = pa.matcher(newString);
String ss = ma.replaceAll(",").trim();
//将字符串转化成数组
String[] arr = ss.split(","); // 用,分割
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
Map<String, String> map =new HashMap<String,String>();
//循环遍历,将数组组合成map放入list
for (int i = 0; i < arr.length; i++) {
if(i==0){
map.put("destinationAddress",arr[0]);
}
if(i==1){
map.put("nextJump", arr[1]);
}
if(i==2){
map.put("state", arr[2]);
//将map放入list后清空数据
list.add(map);
map =new HashMap<String,String>();
List<String> list1=Arrays.asList(arr);
List<String> arrList = new ArrayList<String>(list1); //
arrList.remove(arr[0]);
arrList.remove(arr[1]);
arrList.remove(arr[2]);
String[] newArr = new String[arrList.size()];
//使用for循环得到数组
for(int z = 0; z < arrList.size();z++){
newArr[z] = arrList.get(z);
}
//重新赋值i
i=(-1);
arr = newArr;
}
}
log.info("==============<getRouting-consoleSearch>==============路由设置 -查询, 返回数据-list:"+list);
return ResponseResult.success(list);
}else{
return ResponseResult.success(str);
}
} catch (Exception e) {
log.error("==============<getRouting-consoleSearch-error>==============", e);
return ResponseResult.error();
}
}