|
|
@@ -1,16 +1,13 @@
|
|
|
-package cn.reghao.autodop.common.stat.sys;
|
|
|
-
|
|
|
-import cn.reghao.autodop.common.stat.sys.contant.ProcFile;
|
|
|
-import cn.reghao.autodop.common.stat.sys.contant.TcpState;
|
|
|
-import cn.reghao.autodop.common.stat.sys.pojo.network.NetCardStat;
|
|
|
-import cn.reghao.autodop.common.stat.sys.pojo.network.NetConnStat;
|
|
|
-import cn.reghao.autodop.common.stat.sys.pojo.os.ProcessStat;
|
|
|
-import cn.reghao.autodop.common.stat.sys.pojo.NetworkInfo;
|
|
|
-import cn.reghao.autodop.common.stat.sys.utils.IpAddressConversion;
|
|
|
-import cn.reghao.autodop.common.utils.StringUtil;
|
|
|
+package cn.reghao.autodop.common.stat.linux;
|
|
|
+
|
|
|
+import cn.reghao.autodop.common.stat.linux.contant.ProcFile;
|
|
|
+import cn.reghao.autodop.common.stat.linux.contant.TcpState;
|
|
|
+import cn.reghao.autodop.common.stat.linux.pojo.network.TCPConnStat;
|
|
|
+import cn.reghao.autodop.common.stat.linux.pojo.os.ProcessStat;
|
|
|
+import cn.reghao.autodop.common.stat.linux.pojo.NetworkInfo;
|
|
|
+import cn.reghao.autodop.common.stat.linux.utils.IpAddressConversion;
|
|
|
import cn.reghao.autodop.common.utils.text.TextFile;
|
|
|
|
|
|
-import java.io.IOException;
|
|
|
import java.net.*;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Enumeration;
|
|
|
@@ -77,72 +74,37 @@ public class Network {
|
|
|
return String.join("-", hexadecimal);
|
|
|
}
|
|
|
|
|
|
- public List<NetCardStat> stat() {
|
|
|
- List<NetCardStat> cardStats = new ArrayList<>();
|
|
|
- String[] devs = textFile.readFile(ProcFile.DEV).split(System.lineSeparator());
|
|
|
- for (int i = 2; i < devs.length; i++) {
|
|
|
- String[] data = StringUtil.format(devs[i]).split(" ");
|
|
|
- NetCardStat cardStat = new NetCardStat();
|
|
|
- cardStat.setIface(data[0]);
|
|
|
- cardStat.setRecvBytes(Long.parseLong(data[1]));
|
|
|
- cardStat.setRecvPackets(Long.parseLong(data[2]));
|
|
|
- cardStat.setRecvErrs(Long.parseLong(data[3]));
|
|
|
- cardStat.setRecvDrop(Long.parseLong(data[4]));
|
|
|
- cardStat.setRecvFifo(Long.parseLong(data[5]));
|
|
|
- cardStat.setRecvFrame(Long.parseLong(data[6]));
|
|
|
- cardStat.setRecvCompressed(Long.parseLong(data[7]));
|
|
|
- cardStat.setRecvMulticast(Long.parseLong(data[8]));
|
|
|
- cardStat.setSendBytes(Long.parseLong(data[9]));
|
|
|
- cardStat.setSendPackets(Long.parseLong(data[10]));
|
|
|
- cardStat.setSendErrs(Long.parseLong(data[11]));
|
|
|
- cardStat.setSendDrop(Long.parseLong(data[12]));
|
|
|
- cardStat.setSendFifo(Long.parseLong(data[13]));
|
|
|
- cardStat.setSendColls(Long.parseLong(data[14]));
|
|
|
- cardStat.setSendCarrier(Long.parseLong(data[15]));
|
|
|
- cardStat.setSendCompressed(Long.parseLong(data[16]));
|
|
|
-
|
|
|
- cardStats.add(cardStat);
|
|
|
- }
|
|
|
-
|
|
|
- return cardStats;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
- * netstat -anp|grep '^tcp.*' 命令
|
|
|
- *
|
|
|
* @date 2019-10-25 上午8:59
|
|
|
*/
|
|
|
- public List<NetConnStat> netstat() {
|
|
|
- new Process().topProcess();
|
|
|
-
|
|
|
+ public List<TCPConnStat> tcpStat() {
|
|
|
String[] conns = textFile.readFile(ProcFile.TCP).split(System.lineSeparator());
|
|
|
-
|
|
|
- List<NetConnStat> list = new ArrayList<>();
|
|
|
+ List<TCPConnStat> list = new ArrayList<>();
|
|
|
for (int i = 1; i < conns.length; i++) {
|
|
|
String[] fields = conns[i].split("\\s+");
|
|
|
- NetConnStat netConnStat = new NetConnStat();
|
|
|
+ TCPConnStat TCPConnStat = new TCPConnStat();
|
|
|
+
|
|
|
String localAddr = fields[2].split(":")[0];
|
|
|
String localPort = fields[2].split(":")[1];
|
|
|
- netConnStat.setLocalAddr(conversion.dotDecimal(localAddr));
|
|
|
- netConnStat.setLocalPort(Integer.valueOf(localPort, 16));
|
|
|
+ TCPConnStat.setLocalAddr(conversion.dotDecimal(localAddr));
|
|
|
+ TCPConnStat.setLocalPort(Integer.valueOf(localPort, 16));
|
|
|
|
|
|
String remoteAddr = fields[3].split(":")[0];
|
|
|
String remotePort = fields[3].split(":")[1];
|
|
|
- netConnStat.setRemoteAddr(conversion.dotDecimal(remoteAddr));
|
|
|
- netConnStat.setRemotePort(Integer.valueOf(remotePort, 16));
|
|
|
- netConnStat.setState(tcpState(Integer.valueOf(fields[4], 16)));
|
|
|
+ TCPConnStat.setRemoteAddr(conversion.dotDecimal(remoteAddr));
|
|
|
+ TCPConnStat.setRemotePort(Integer.valueOf(remotePort, 16));
|
|
|
+ TCPConnStat.setState(tcpState(Integer.valueOf(fields[4], 16)));
|
|
|
|
|
|
String sendq = fields[5].split(":")[0];
|
|
|
String recvq = fields[5].split(":")[1];
|
|
|
- netConnStat.setSendq(Long.valueOf(sendq, 16));
|
|
|
- netConnStat.setRecvq(Long.valueOf(recvq, 16));
|
|
|
+ TCPConnStat.setSendq(Long.valueOf(sendq, 16));
|
|
|
+ TCPConnStat.setRecvq(Long.valueOf(recvq, 16));
|
|
|
|
|
|
long inode = Long.parseLong(fields[10]);
|
|
|
- netConnStat.setProcess(ProcessStat.socketInodes.get(inode));
|
|
|
+ TCPConnStat.setProcess(ProcessStat.socketInodes.get(inode));
|
|
|
+ list.add(TCPConnStat);
|
|
|
|
|
|
- list.add(netConnStat);
|
|
|
}
|
|
|
-
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
@@ -175,10 +137,8 @@ public class Network {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static void main(String[] args) throws IOException {
|
|
|
+ public static void main(String[] args) {
|
|
|
Network network = new Network();
|
|
|
- network.netstat();
|
|
|
- //network.ifconfig();
|
|
|
- //network.info();
|
|
|
+ network.tcpStat();
|
|
|
}
|
|
|
}
|