summaryrefslogtreecommitdiff
path: root/src/test/TestNet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/TestNet.java')
-rw-r--r--src/test/TestNet.java151
1 files changed, 151 insertions, 0 deletions
diff --git a/src/test/TestNet.java b/src/test/TestNet.java
new file mode 100644
index 0000000..e33da29
--- /dev/null
+++ b/src/test/TestNet.java
@@ -0,0 +1,151 @@
+package test;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.util.Scanner;
+
+import org.hyperic.sigar.FileSystem;
+import org.hyperic.sigar.FileSystemUsage;
+import org.hyperic.sigar.NetFlags;
+import org.hyperic.sigar.NetInterfaceConfig;
+import org.hyperic.sigar.NetInterfaceStat;
+import org.hyperic.sigar.Sigar;
+import org.hyperic.sigar.SigarException;
+
+
+public class TestNet {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+ try {
+ Sigar sigar = new Sigar();
+
+ FileSystem fslist[] = sigar.getFileSystemList();
+ for (int i = 0; i < fslist.length; i++) {
+ FileSystem fs = fslist[i];
+ try {
+ FileSystemUsage usage = sigar.getFileSystemUsage(fs.getDirName());
+ if (fs.getType() == 2) {// 先取每个盘符的大小和剩余空间
+ OutputStreamWriter fos = null;
+ File file = new File(fs.getDirName() + File.separator + "writetest.temp");
+ System.out.println("-----------file path--" + file.getAbsolutePath());
+ try {
+ String testStr = "测试硬盘是否可写,现在开始写入文件";
+ fos = new OutputStreamWriter(
+ new FileOutputStream(file), "utf-8");
+ fos.write(testStr);
+ fos.flush();
+ } catch (IOException e) {
+ System.out.println("测试硬盘是否可写:" + e.getMessage());
+ }finally {
+ if(fos!=null){
+ try {
+ fos.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+ if(file.exists()){
+ file.delete();
+ System.out.println("---------file delete=" + file.getAbsolutePath());
+ }
+ }
+ } catch (SigarException e) {
+ if (fs.getType() == 2)
+ throw e;
+ continue;
+ }
+ }
+
+ String ifNames[] = sigar.getNetInterfaceList();
+ if(ifNames.length >0){
+ System.out.println("========= all list ==========");
+ for (int i = 0; i < ifNames.length; i++) {
+ String name = ifNames[i];
+ try {
+ NetInterfaceConfig ifconfig = sigar.getNetInterfaceConfig(name);
+ System.out
+ .println(name
+ + "\t"
+ + ifconfig.getType()
+ + "\t"
+ + ifconfig.getFlags()
+ + "---((ifconfig.getFlags()&NetFlags.IFF_POINTOPOINT)>0)="
+ + ((ifconfig.getFlags() & NetFlags.IFF_POINTOPOINT) > 0)
+ + "---((ifconfig.getFlags()&NetFlags.IFF_LOOPBACK)>0)="
+ + ((ifconfig.getFlags() & NetFlags.IFF_LOOPBACK) > 0)
+ + "---((ifconfig.getFlags()&NetFlags.IFF_BROADCAST)<=0)="
+ + ((ifconfig.getFlags() & NetFlags.IFF_BROADCAST) <= 0)
+ + "---((ifconfig.getFlags()&NetFlags.IFF_MULTICAST)<=0)="
+ + ((ifconfig.getFlags() & NetFlags.IFF_MULTICAST) <= 0)
+ + "\t---((ifconfig.getFlags()&NetFlags.IFF_UP)<=0)="
+ + ((ifconfig.getFlags() & NetFlags.IFF_UP) <= 0));
+ } catch (SigarException e) {
+ System.out.println(name);
+ continue;
+ }
+ }
+
+ System.out.println("========= net list ==========");
+ for (int i = 0; i < ifNames.length; i++) {
+ String name = ifNames[i];
+ try {
+ NetInterfaceConfig ifconfig = sigar.getNetInterfaceConfig(name);
+ // *** 网卡类型:ethernet, Local Loopback(本地环回网卡)
+ /*if (!"ethernet".equalsIgnoreCase(ifconfig.getType())) {
+ continue;
+ }*/
+ // *** 这里只取 ethernet 网卡类型
+
+ if ((ifconfig.getFlags() & NetFlags.IFF_POINTOPOINT) > 0) {
+ continue;
+ }
+ if ((ifconfig.getFlags() & NetFlags.IFF_LOOPBACK) > 0) {
+ continue;
+ }
+ if ((ifconfig.getFlags() & NetFlags.IFF_BROADCAST) <= 0) {// broadcast地址无效
+ continue;
+ }
+ if ((ifconfig.getFlags() & NetFlags.IFF_MULTICAST) <= 0) {// 不支持multicast
+ continue;
+ }
+ if ((ifconfig.getFlags() & NetFlags.IFF_UP) <= 0) {
+ continue;
+ }
+ System.out.println(name + "--" + ifconfig.getAddress());
+ } catch (SigarException e) {
+ continue;
+ }
+ }
+
+ Scanner sc = new Scanner(System.in);
+ while(true){
+ System.out.print("\nplease enter net name:");
+ String name = sc.nextLine();
+ if("quit".equalsIgnoreCase(name)){
+ break;
+ }
+ if(name==null || "".equals(name)){
+ continue;
+ }
+ System.out.println("-----------" + name + "------------");
+ try{
+ NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);
+ System.out.println("speed: " + ifstat.getSpeed() + "b/s\nRxPackets: " + ifstat.getRxPackets() + "\nTxPackets: " + ifstat.getTxPackets());
+ } catch (SigarException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ } catch (SigarException e) {
+ System.err.println("获取网络信息异常");
+ e.printStackTrace();
+ }
+ }
+
+}