`

java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)

    博客分类:
  • Java
 
阅读更多

通过使用第三方开源jar包sigar.jar我们可以获得本地的信息

1.下载sigar.jar

sigar官方主页

sigar-1.6.4.zip

2.按照主页上的说明解压包后将相应的文件copy到java路径。比如windows32位操作系统需要将lib中sigar-x86-winnt.dll文件拷贝到java SDK目录的bin内

参考官方主页上的配置项。

 

File Language Description Required
sigar.jar Java Java API Yes (for Java only)
log4j.jar Java Java logging API No
libsigar-x86-linux.so C Linux AMD/Intel 32-bit *
libsigar-amd64-linux.so C Linux AMD/Intel 64-bit *
libsigar-ppc-linux.so C Linux PowerPC 32-bit *
libsigar-ppc64-linux.so C Linux PowerPC 64-bit *
libsigar-ia64-linux.so C Linux Itanium 64-bit *
libsigar-s390x-linux.so C Linux zSeries 64-bit *
sigar-x86-winnt.dll C Windows AMD/Intel 32-bit *
sigar-amd64-winnt.dll C Windows AMD/Intel 64-bit *
libsigar-ppc-aix-5.so C AIX PowerPC 32-bit *
libsigar-ppc64-aix-5.so C AIX PowerPC 64-bit *
libsigar-pa-hpux-11.sl C HP-UX PA-RISC 32-bit *
libsigar-ia64-hpux-11.sl C HP-UX Itanium 64-bt *
libsigar-sparc-solaris.so C Solaris Sparc 32-bit *
libsigar-sparc64-solaris.so C Solaris Sparc 64-bit *
libsigar-x86-solaris.so C Solaris AMD/Intel 32-bit *
libsigar-amd64-solaris.so C Solaris AMD/Intel 64-bit *
libsigar-universal-macosx.dylib C Mac OS X PowerPC/Intel 32-bit *
libsigar-universal64-macosx.dylib C Mac OS X PowerPC/Intel 64-bit *
libsigar-x86-freebsd-5.so C FreeBSD 5.x AMD/Intel 32-bit *
libsigar-x86-freebsd-6.so C FreeBSD 6.x AMD/Intel 64-bit *
libsigar-amd64-freebsd-6.so C FreeBSD 6.x AMD/Intel 64-bit *


 

3. 代码实现

 示例java项目下载地址:http://download.csdn.net/detail/jifeng3518/4305325

复制代码
import  java.net.InetAddress;
import  java.net.UnknownHostException;
import  java.util.Map;
import  java.util.Properties;
import  org.hyperic.sigar.CpuInfo;
import  org.hyperic.sigar.CpuPerc;
import  org.hyperic.sigar.FileSystem;
import  org.hyperic.sigar.FileSystemUsage;
import  org.hyperic.sigar.Mem;
import  org.hyperic.sigar.NetFlags;
import  org.hyperic.sigar.NetInterfaceConfig;
import  org.hyperic.sigar.NetInterfaceStat;
import  org.hyperic.sigar.OperatingSystem;
import  org.hyperic.sigar.Sigar;
import  org.hyperic.sigar.SigarException;
import  org.hyperic.sigar.Swap;
import  org.hyperic.sigar.Who;

public  class  RuntimeTest {
    public  static  void  main(String[] args) {
        try  {
            //  System信息,从jvm获取
            property();
            System.out.println("----------------------------------");
            //  cpu信息
            cpu();
            System.out.println("----------------------------------");
            //  内存信息
            memory();
            System.out.println("----------------------------------");
            //  操作系统信息
            os();
            System.out.println("----------------------------------");
            //  用户信息
            who();
            System.out.println("----------------------------------");
            //  文件系统信息
            file();
            System.out.println("----------------------------------");
            //  网络信息
            net();
            System.out.println("----------------------------------");
            //  以太网信息
            ethernet();
            System.out.println("----------------------------------");
        } catch  (Exception e1) {
            e1.printStackTrace();
        }
    }

    private  static  void  property() throws  UnknownHostException {
        Runtime r = Runtime.getRuntime();
        Properties props = System.getProperties();
        InetAddress addr;
        addr = InetAddress.getLocalHost();
        String ip = addr.getHostAddress();
        Map<String, String> map = System.getenv();
        String userName = map.get("USERNAME");//  获取用户名
        String computerName = map.get("COMPUTERNAME");//  获取计算机名
        String userDomain = map.get("USERDOMAIN");//  获取计算机域名
        System.out.println("用户名:    " + userName);
        System.out.println("计算机名:    " + computerName);
        System.out.println("计算机域名:    " + userDomain);
        System.out.println("本地ip地址:    " + ip);
        System.out.println("本地主机名:    " + addr.getHostName());
        System.out.println("JVM可以使用的总内存:    " + r.totalMemory());
        System.out.println("JVM可以使用的剩余内存:    " + r.freeMemory());
        System.out.println("JVM可以使用的处理器个数:    " + r.availableProcessors());
        System.out.println("Java的运行环境版本:    " + props.getProperty("java.version"));
        System.out.println("Java的运行环境供应商:    " + props.getProperty("java.vendor"));
        System.out.println("Java供应商的URL:    " + props.getProperty("java.vendor.url"));
        System.out.println("Java的安装路径:    " + props.getProperty("java.home"));
        System.out.println("Java的虚拟机规范版本:    " + props.getProperty("java.vm.specification.version"));
        System.out.println("Java的虚拟机规范供应商:    " + props.getProperty("java.vm.specification.vendor"));
        System.out.println("Java的虚拟机规范名称:    " + props.getProperty("java.vm.specification.name"));
        System.out.println("Java的虚拟机实现版本:    " + props.getProperty("java.vm.version"));
        System.out.println("Java的虚拟机实现供应商:    " + props.getProperty("java.vm.vendor"));
        System.out.println("Java的虚拟机实现名称:    " + props.getProperty("java.vm.name"));
        System.out.println("Java运行时环境规范版本:    " + props.getProperty("java.specification.version"));
        System.out.println("Java运行时环境规范供应商:    " + props.getProperty("java.specification.vender"));
        System.out.println("Java运行时环境规范名称:    " + props.getProperty("java.specification.name"));
        System.out.println("Java的类格式版本号:    " + props.getProperty("java.class.version"));
        System.out.println("Java的类路径:    " + props.getProperty("java.class.path"));
        System.out.println("加载库时搜索的路径列表:    " + props.getProperty("java.library.path"));
        System.out.println("默认的临时文件路径:    " + props.getProperty("java.io.tmpdir"));
        System.out.println("一个或多个扩展目录的路径:    " + props.getProperty("java.ext.dirs"));
        System.out.println("操作系统的名称:    " + props.getProperty("os.name"));
        System.out.println("操作系统的构架:    " + props.getProperty("os.arch"));
        System.out.println("操作系统的版本:    " + props.getProperty("os.version"));
        System.out.println("文件分隔符:    " + props.getProperty("file.separator"));
        System.out.println("路径分隔符:    " + props.getProperty("path.separator"));
        System.out.println("行分隔符:    " + props.getProperty("line.separator"));
        System.out.println("用户的账户名称:    " + props.getProperty("user.name"));
        System.out.println("用户的主目录:    " + props.getProperty("user.home"));
        System.out.println("用户的当前工作目录:    " + props.getProperty("user.dir"));
    }

    private  static  void  memory() throws  SigarException {
        Sigar sigar = new  Sigar();
        Mem mem = sigar.getMem();
        //  内存总量
        System.out.println("内存总量:    " + mem.getTotal() / 1024L + "K av");
        //  当前内存使用量
        System.out.println("当前内存使用量:    " + mem.getUsed() / 1024L + "K used");
        //  当前内存剩余量
        System.out.println("当前内存剩余量:    " + mem.getFree() / 1024L + "K free");
        Swap swap = sigar.getSwap();
        //  交换区总量
        System.out.println("交换区总量:    " + swap.getTotal() / 1024L + "K av");
        //  当前交换区使用量
        System.out.println("当前交换区使用量:    " + swap.getUsed() / 1024L + "K used");
        //  当前交换区剩余量
        System.out.println("当前交换区剩余量:    " + swap.getFree() / 1024L + "K free");
    }

    private  static  void  cpu() throws  SigarException {
        Sigar sigar = new  Sigar();
        CpuInfo infos[] = sigar.getCpuInfoList();
        CpuPerc cpuList[] = null ;
        cpuList = sigar.getCpuPercList();
        for  (int  i = 0; i < infos.length; i++) {//  不管是单块CPU还是多CPU都适用
            CpuInfo info = infos[i];
            System.out.println("第" + (i + 1) + "块CPU信息");
            System.out.println("CPU的总量MHz:    " + info.getMhz());//  CPU的总量MHz
            System.out.println("CPU生产商:    " + info.getVendor());//  获得CPU的卖主,如:Intel
            System.out.println("CPU类别:    " + info.getModel());//  获得CPU的类别,如:Celeron
            System.out.println("CPU缓存数量:    " + info.getCacheSize());//  缓冲存储器数量
            printCpuPerc(cpuList[i]);
        }
    }

    private  static  void  printCpuPerc(CpuPerc cpu) {
        System.out.println("CPU用户使用率:    " + CpuPerc.format(cpu.getUser()));//  用户使用率
        System.out.println("CPU系统使用率:    " + CpuPerc.format(cpu.getSys()));//  系统使用率
        System.out.println("CPU当前等待率:    " + CpuPerc.format(cpu.getWait()));//  当前等待率
        System.out.println("CPU当前错误率:    " + CpuPerc.format(cpu.getNice()));//
        System.out.println("CPU当前空闲率:    " + CpuPerc.format(cpu.getIdle()));//  当前空闲率
        System.out.println("CPU总的使用率:    " + CpuPerc.format(cpu.getCombined()));//  总的使用率
    }

    private  static  void  os() {
        OperatingSystem OS = OperatingSystem.getInstance();
        //  操作系统内核类型如: 386、486、586等x86
        System.out.println("操作系统:    " + OS.getArch());
        System.out.println("操作系统CpuEndian():    " + OS.getCpuEndian());//
        System.out.println("操作系统DataModel():    " + OS.getDataModel());//
        
//  系统描述
        System.out.println("操作系统的描述:    " + OS.getDescription());
        //  操作系统类型
        
//  System.out.println("OS.getName():    " + OS.getName());
        
//  System.out.println("OS.getPatchLevel():    " + OS.getPatchLevel()); //
        
//  操作系统的卖主
        System.out.println("操作系统的卖主:    " + OS.getVendor());
        //  卖主名称
        System.out.println("操作系统的卖主名:    " + OS.getVendorCodeName());
        //  操作系统名称
        System.out.println("操作系统名称:    " + OS.getVendorName());
        //  操作系统卖主类型
        System.out.println("操作系统卖主类型:    " + OS.getVendorVersion());
        //  操作系统的版本号
        System.out.println("操作系统的版本号:    " + OS.getVersion());
    }

    private  static  void  who() throws  SigarException {
        Sigar sigar = new  Sigar();
        Who who[] = sigar.getWhoList();
        if  (who != null  && who.length > 0) {
            for  (int  i = 0; i < who.length; i++) {
                //  System.out.println("当前系统进程表中的用户名" + String.valueOf(i));
                Who _who = who[i];
                System.out.println("用户控制台:    " + _who.getDevice());
                System.out.println("用户host:    " + _who.getHost());
                //  System.out.println("getTime():    " + _who.getTime());
                
//  当前系统进程表中的用户名
                System.out.println("当前系统进程表中的用户名:    " + _who.getUser());
            }
        }
    }

    private  static  void  file() throws  Exception {
        Sigar sigar = new  Sigar();
        FileSystem fslist[] = sigar.getFileSystemList();
        for  (int  i = 0; i < fslist.length; i++) {
            System.out.println("分区的盘符名称" + i);
            FileSystem fs = fslist[i];
            //  分区的盘符名称
            System.out.println("盘符名称:    " + fs.getDevName());
            //  分区的盘符名称
            System.out.println("盘符路径:    " + fs.getDirName());
            System.out.println("盘符标志:    " + fs.getFlags());//
            
//  文件系统类型,比如 FAT32、NTFS
            System.out.println("盘符类型:    " + fs.getSysTypeName());
            //  文件系统类型名,比如本地硬盘、光驱、网络文件系统等
            System.out.println("盘符类型名:    " + fs.getTypeName());
            //  文件系统类型
            System.out.println("盘符文件系统类型:    " + fs.getType());
            FileSystemUsage usage = null ;
            usage = sigar.getFileSystemUsage(fs.getDirName());
            switch  (fs.getType()) {
            case  0: //  TYPE_UNKNOWN :未知
                break ;
            case  1: //  TYPE_NONE
                break ;
            case  2: //  TYPE_LOCAL_DISK : 本地硬盘
                
//  文件系统总大小
                System.out.println(fs.getDevName() + "总大小:    " + usage.getTotal() + "KB");
                //  文件系统剩余大小
                System.out.println(fs.getDevName() + "剩余大小:    " + usage.getFree() + "KB");
                //  文件系统可用大小
                System.out.println(fs.getDevName() + "可用大小:    " + usage.getAvail() + "KB");
                //  文件系统已经使用量
                System.out.println(fs.getDevName() + "已经使用量:    " + usage.getUsed() + "KB");
                double  usePercent = usage.getUsePercent() * 100D;
                //  文件系统资源的利用率
                System.out.println(fs.getDevName() + "资源的利用率:    " + usePercent + "%");
                break ;
            case  3://  TYPE_NETWORK :网络
                break ;
            case  4://  TYPE_RAM_DISK :闪存
                break ;
            case  5://  TYPE_CDROM :光驱
                break ;
            case  6://  TYPE_SWAP :页面交换
                break ;
            }
            System.out.println(fs.getDevName() + "读出:    " + usage.getDiskReads());
            System.out.println(fs.getDevName() + "写入:    " + usage.getDiskWrites());
        }
        return ;
    }

    private  static  void  net() throws  Exception {
        Sigar sigar = new  Sigar();
        String ifNames[] = sigar.getNetInterfaceList();
        for  (int  i = 0; i < ifNames.length; i++) {
            String name = ifNames[i];
            NetInterfaceConfig ifconfig = sigar.getNetInterfaceConfig(name);
            System.out.println("网络设备名:    " + name);//  网络设备名
            System.out.println("IP地址:    " + ifconfig.getAddress());//  IP地址
            System.out.println("子网掩码:    " + ifconfig.getNetmask());//  子网掩码
            if  ((ifconfig.getFlags() & 1L) <= 0L) {
                System.out.println("!IFF_UP...skipping getNetInterfaceStat");
                continue ;
            }
            NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);
            System.out.println(name + "接收的总包裹数:" + ifstat.getRxPackets());//  接收的总包裹数
            System.out.println(name + "发送的总包裹数:" + ifstat.getTxPackets());//  发送的总包裹数
            System.out.println(name + "接收到的总字节数:" + ifstat.getRxBytes());//  接收到的总字节数
            System.out.println(name + "发送的总字节数:" + ifstat.getTxBytes());//  发送的总字节数
            System.out.println(name + "接收到的错误包数:" + ifstat.getRxErrors());//  接收到的错误包数
            System.out.println(name + "发送数据包时的错误数:" + ifstat.getTxErrors());//  发送数据包时的错误数
            System.out.println(name + "接收时丢弃的包数:" + ifstat.getRxDropped());//  接收时丢弃的包数
            System.out.println(name + "发送时丢弃的包数:" + ifstat.getTxDropped());//  发送时丢弃的包数
        }
    }

    private  static  void  ethernet() throws  SigarException {
        Sigar sigar = null ;
        sigar = new  Sigar();
        String[] ifaces = sigar.getNetInterfaceList();
        for  (int  i = 0; i < ifaces.length; i++) {
            NetInterfaceConfig cfg = sigar.getNetInterfaceConfig(ifaces[i]);
            if  (NetFlags.LOOPBACK_ADDRESS.equals(cfg.getAddress()) || (cfg.getFlags() & NetFlags.IFF_LOOPBACK) != 0
                    || NetFlags.NULL_HWADDR.equals(cfg.getHwaddr())) {
                continue ;
            }
            System.out.println(cfg.getName() + "IP地址:" + cfg.getAddress());//  IP地址
            System.out.println(cfg.getName() + "网关广播地址:" + cfg.getBroadcast());//  网关广播地址
            System.out.println(cfg.getName() + "网卡MAC地址:" + cfg.getHwaddr());//  网卡MAC地址
            System.out.println(cfg.getName() + "子网掩码:" + cfg.getNetmask());//  子网掩码
            System.out.println(cfg.getName() + "网卡描述信息:" + cfg.getDescription());//  网卡描述信息
            System.out.println(cfg.getName() + "网卡类型" + cfg.getType());//
        }
    }
}
复制代码

 

运行结果:

 

用户名: Administrator
计算机名: UCIT_JIF
计算机域名: UCIT_JIF
本地ip地址: 192.168.2.153
本地主机名: UCIT_Jif
JVM可以使用的总内存: 16252928
JVM可以使用的剩余内存: 15866248
JVM可以使用的处理器个数: 2
Java的运行环境版本: 1.6.0_18
Java的运行环境供应商: Sun Microsystems Inc.
Java供应商的URL:  http://java.sun.com/
Java的安装路径: C:\java\jre6
Java的虚拟机规范版本: 1.0
Java的虚拟机规范供应商: Sun Microsystems Inc.
Java的虚拟机规范名称: Java Virtual Machine Specification
Java的虚拟机实现版本: 16.0-b13
Java的虚拟机实现供应商: Sun Microsystems Inc.
Java的虚拟机实现名称: Java HotSpot(TM) Client VM
Java运行时环境规范版本: 1.6
Java运行时环境规范供应商: null
Java运行时环境规范名称: Java Platform API Specification
Java的类格式版本号: 50.0
Java的类路径: D:\eclipse3.6\eclipse\workspace\sigar\bin;D:\eclipse3.6\eclipse\workspace\sigar\lib\sigar.jar;D:\eclipse3.6\eclipse\workspace\sigar\lib\.sigar_shellrc;D:\eclipse3.6\eclipse\workspace\sigar\lib\sigar-x86-winnt.dll;D:\eclipse3.6\eclipse\workspace\sigar\lib\sigar-x86-winnt.lib;D:\eclipse3.6\eclipse\workspace\sigar\lib\libsigar-x86-linux.so
加载库时搜索的路径列表: C:\java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\PHP\;D:\oracle\product\10.2.0\client_2\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;C:\java\jdk1.6.0_18\bin;C:\Program Files\TortoiseSVN\bin;C:\Progra~1\GnuWin32\bin;C:\Program Files\goodvpn\bin;D:\Program Files\PowerCmd;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Common Files\Adobe\AGL;C:\apache-ant-1.8.2\bin;D:\Program Files\Rational\common;C:\Program Files\StormII\Codec;C:\Program Files\StormII;C:\Program Files\SSH Communications Security\SSH Secure Shell;;;C:\Program Files\OpenVPN\bin;C:\Program Files\OpenVPN64\bin
默认的临时文件路径: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\
一个或多个扩展目录的路径: C:\java\jre6\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
操作系统的名称: Windows XP
操作系统的构架: x86
操作系统的版本: 5.1
文件分隔符: \
路径分隔符: ;
行分隔符: 

用户的账户名称: Administrator
用户的主目录: C:\Documents and Settings\Administrator
用户的当前工作目录: D:\eclipse3.6\eclipse\workspace\sigar
----------------------------------
第1块CPU信息
CPU的总量MHz: 3015
CPU生产商: AMD
CPU类别: Athlon
CPU缓存数量: -1
CPU用户使用率: 3.1%
CPU系统使用率: 9.3%
CPU当前等待率: 0.0%
CPU当前错误率: 0.0%
CPU当前空闲率: 87.4%
CPU总的使用率: 12.5%
第2块CPU信息
CPU的总量MHz: 3015
CPU生产商: AMD
CPU类别: Athlon
CPU缓存数量: -1
CPU用户使用率: 0.0%
CPU系统使用率: 3.2%
CPU当前等待率: 0.0%
CPU当前错误率: 0.0%
CPU当前空闲率: 96.8%
CPU总的使用率: 3.2%
----------------------------------
内存总量: 3275880K av
当前内存使用量: 1698960K used
当前内存剩余量: 1576920K free
交换区总量: 5206208K av
当前交换区使用量: 2062372K used
当前交换区剩余量: 3143836K free
----------------------------------
操作系统: x86
操作系统CpuEndian(): little
操作系统DataModel(): 32
操作系统的描述: Microsoft Windows XP
操作系统的卖主: Microsoft
操作系统的卖主名: Whistler
操作系统名称: Windows XP
操作系统卖主类型: XP
操作系统的版本号: 5.1
----------------------------------
用户控制台: console
用户host: NT AUTHORITY
当前系统进程表中的用户名: LOCAL SERVICE
用户控制台: console
用户host: NT AUTHORITY
当前系统进程表中的用户名: NETWORK SERVICE
用户控制台: Console
用户host: UCIT_JIF
当前系统进程表中的用户名: Administrator
用户控制台: console
用户host: NT AUTHORITY
当前系统进程表中的用户名: SYSTEM
----------------------------------
分区的盘符名称0
盘符名称: C:\
盘符路径: C:\
盘符标志: 0
盘符类型: FAT32
盘符类型名: local
盘符文件系统类型: 2
C:\总大小: 47159808KB
C:\剩余大小: 9771792KB
C:\可用大小: 9771792KB
C:\已经使用量: 37388016KB
C:\资源的利用率: 80.0%
C:\读出: 45669
C:\写入: 43176
分区的盘符名称1
盘符名称: D:\
盘符路径: D:\
盘符标志: 0
盘符类型: NTFS
盘符类型名: local
盘符文件系统类型: 2
D:\总大小: 133186848KB
D:\剩余大小: 65896436KB
D:\可用大小: 65896436KB
D:\已经使用量: 67290412KB
D:\资源的利用率: 51.0%
D:\读出: 41299
D:\写入: 40369
分区的盘符名称2
盘符名称: E:\
盘符路径: E:\
盘符标志: 0
盘符类型: NTFS
盘符类型名: local
盘符文件系统类型: 2
E:\总大小: 154151672KB
E:\剩余大小: 82892352KB
E:\可用大小: 82892352KB
E:\已经使用量: 71259320KB
E:\资源的利用率: 47.0%
E:\读出: 21383
E:\写入: 728
分区的盘符名称3
盘符名称: F:\
盘符路径: F:\
盘符标志: 0
盘符类型: NTFS
盘符类型名: local
盘符文件系统类型: 2
F:\总大小: 153862504KB
F:\剩余大小: 33843680KB
F:\可用大小: 33843680KB
F:\已经使用量: 120018824KB
F:\资源的利用率: 79.0%
F:\读出: 14
F:\写入: 24
----------------------------------
网络设备名: eth0
IP地址: 0.0.0.0
子网掩码: 0.0.0.0
!IFF_UP...skipping getNetInterfaceStat
网络设备名: eth1
IP地址: 0.0.0.0
子网掩码: 0.0.0.0
!IFF_UP...skipping getNetInterfaceStat
网络设备名: eth2
IP地址: 192.168.2.153
子网掩码: 255.255.255.0
eth2接收的总包裹数:105678
eth2发送的总包裹数:21919
eth2接收到的总字节数:24269582
eth2发送的总字节数:8721544
eth2接收到的错误包数:0
eth2发送数据包时的错误数:0
eth2接收时丢弃的包数:0
eth2发送时丢弃的包数:0
网络设备名: eth3
IP地址: 192.168.184.1
子网掩码: 255.255.255.0
eth3接收的总包裹数:144
eth3发送的总包裹数:146
eth3接收到的总字节数:16861
eth3发送的总字节数:16969
eth3接收到的错误包数:0
eth3发送数据包时的错误数:0
eth3接收时丢弃的包数:0
eth3发送时丢弃的包数:0
网络设备名: eth4
IP地址: 192.168.92.1
子网掩码: 255.255.255.0
eth4接收的总包裹数:144
eth4发送的总包裹数:146
eth4接收到的总字节数:16861
eth4发送的总字节数:16969
eth4接收到的错误包数:0
eth4发送数据包时的错误数:0
eth4接收时丢弃的包数:0
eth4发送时丢弃的包数:0
网络设备名: lo0
IP地址: 127.0.0.1
子网掩码: 255.0.0.0
lo0接收的总包裹数:94004
lo0发送的总包裹数:94004
lo0接收到的总字节数:15416919
lo0发送的总字节数:15416919
lo0接收到的错误包数:0
lo0发送数据包时的错误数:0
lo0接收时丢弃的包数:0
lo0发送时丢弃的包数:0
----------------------------------
eth0IP地址:0.0.0.0
eth0网关广播地址:255.255.255.255
eth0网卡MAC地址:00:FF:79:6B:AF:45
eth0子网掩码:0.0.0.0
eth0网卡描述信息:TAP-Win32 Adapter V8 #3 - ????ü??????ò?
eth0网卡类型Ethernet
eth1IP地址:0.0.0.0
eth1网关广播地址:255.255.255.255
eth1网卡MAC地址:00:FF:C9:53:0A:58
eth1子网掩码:0.0.0.0
eth1网卡描述信息:TAP-Win32 Adapter V8 #2 - ????ü??????ò?
eth1网卡类型Ethernet
eth2IP地址:192.168.2.153
eth2网关广播地址:192.168.2.255
eth2网卡MAC地址:00:21:86:4D:23:26
eth2子网掩码:255.255.255.0
eth2网卡描述信息:NVIDIA nForce Networking Controller - ????ü??????ò?
eth2网卡类型Ethernet
eth3IP地址:192.168.184.1
eth3网关广播地址:192.168.184.255
eth3网卡MAC地址:00:50:56:C0:00:01
eth3子网掩码:255.255.255.0
eth3网卡描述信息:VMware Virtual Ethernet Adapter for VMnet1
eth3网卡类型Ethernet
eth4IP地址:192.168.92.1
eth4网关广播地址:192.168.92.255
eth4网卡MAC地址:00:50:56:C0:00:08
eth4子网掩码:255.255.255.0
eth4网卡描述信息:VMware Virtual Ethernet Adapter for VMnet8
eth4网卡类型Ethernet

分享到:
评论

相关推荐

    电气自动化仪表工程施工组织设计.doc

    电气自动化仪表工程施工组织设计.doc

    C#与VisionPro联合开发的工业视觉通用框架源码解析及应用场景

    内容概要:本文详细介绍了基于C#和VisionPro构建的一个工业视觉通用框架。该框架主要解决了设备开发中的多个痛点,包括但不限于动态界面布局、标定算法、DLL嵌入方案、光源控制和服务端架构等方面。文中提供了大量具体的代码片段,展示了如何利用C#的强大特性和VisionPro丰富的工具链进行高效开发。例如,通过动态布局代码实现了根据相机数量自动调整界面的功能;采用两种旋转标定方法互为验证确保精度;通过接口化设计使得不同类型的光源控制器可以轻松接入;并使用WCF作为通信协议搭建了高性能的服务端架构。 适合人群:从事工业视觉开发的技术人员,尤其是那些需要频繁面对新项目启动阶段重复劳动的人群。 使用场景及目标:本框架适用于各种涉及多相机协作、复杂标定任务以及需要高度定制化的工业视觉项目。其目的是帮助开发者节省大量的前期准备工作,提高开发效率,降低错误率。 其他说明:尽管该框架已经非常成熟,但在实际应用过程中仍需要注意一些潜在的问题,如VisionPro的线程模型与C#异步特性之间的协调、不同品牌光源控制器的兼容性等。此外,作者还提到未来计划增加云端标定数据同步等功能。

    2023年计算机信息系统集成项目管理工程师学习笔记.docx

    2023年计算机信息系统集成项目管理工程师学习笔记.docx

    pid控制四旋翼仿真 matlab.zip

    matlab

    数据集-part3-沥青路面缺陷目标检测数据集-labelme

    part3包含2000张图片,全部6000张。 当前道路养护领域面临几个显著挑战: 1. 数据稀缺性:大多数机构缺乏高质量的标注数据集来训练可靠的缺陷检测模型 2. 类别不平衡:现有数据集往往只关注裂缝等常见缺陷,忽视修补区域和井盖等重要类别 本沥青路面缺陷目标检测数据集提供6,000张精心标注的高质量图像,包含6个关键类别:裂缝、裂缝修补、坑洞、坑洞修补、井盖及其他。 数据集介绍: https://mp.csdn.net/mp_blog/creation/success/147170602

    2023年自考自动化制造系统数控铣削.doc

    2023年自考自动化制造系统数控铣削.doc

    2023年计算机等级考试一级笔试试卷.doc

    2023年计算机等级考试一级笔试试卷.doc

    C#与Xamarin开发:基于S7-1200 PLC的手机组态APP无线WiFi通信解决方案

    内容概要:本文详细介绍了使用C#和Xamarin开发一款手机组态应用程序,用于通过WiFi实时监控西门子S7-1200 PLC的运行状态。主要内容涵盖PLC通信配置、登录模块的安全措施、数据交互与缓存、异常处理以及报警推送等功能的实现。文中提供了具体的代码示例和技术细节,如使用S7.Net库进行PLC连接、JSON格式缓存PLC状态、SHA256密码哈希、心跳机制维持WiFi连接稳定性和跨线程UI更新等。 适合人群:具有一定编程基础,尤其是熟悉C#和Xamarin框架的研发人员,以及从事工业自动化领域的工程师。 使用场景及目标:适用于希望将工业控制系统集成到移动设备的应用开发者,旨在提高工业现场监控效率,减少维护成本。具体目标包括实现远程监控、提升系统的可靠性和安全性,以及改善用户体验。 其他说明:文中提到多个实用技巧和常见问题解决方案,如WiFi配置、安卓系统权限设置、不同品牌手机的后台服务限制处理等。同时强调了工业无线通信不仅涉及编程技能,还需要掌握一定的网络基础知识。

    基于MATLAB/Simulink的VIENNA整流器双环控制仿真建模及参数优化

    内容概要:本文详细介绍了基于MATLAB/Simulink构建VIENNA整流器仿真模型的过程,重点探讨了电压电流双环控制策略及其参数调整方法。作者通过反复试验确定了电压外环PI控制器的最佳参数配置,并解决了电流内环滞环控制带来的开关频率和电感啸叫等问题。同时,文中还涉及了坐标变换、锁相环、电容选型等关键技术细节,确保直流母线电压纹波控制在0.5%以内,实现了高效稳定的整流效果。 适合人群:从事电力电子研究的技术人员、高校相关专业师生以及对VIENNA整流器感兴趣的工程师。 使用场景及目标:适用于需要深入了解VIENNA整流器工作原理及其实现方式的研究项目;帮助读者掌握如何利用MATLAB/Simulink进行复杂电力电子系统的建模仿真;提供了一套完整的参数调试思路和技术解决方案。 其他说明:文中不仅提供了详细的数学公式和代码片段,还有丰富的实验数据支持,使得理论与实践紧密结合。此外,作者分享了许多宝贵的实战经验,如抗饱和处理、死区时间设置等,有助于提高读者的实际操作能力。

    LoRaWAN工业温控器STM32L073+SX1278的量产代码设计与实现

    内容概要:本文详细介绍了基于STM32L073和SX1278的LoRaWAN工业温控器的量产代码设计与实现。主要内容涵盖硬件架构与基础配置、IAP固件升级、温湿度采集与滤波、继电器控制与工况检测、LoRaWAN通信等方面。文中不仅提供了关键代码示例,还分享了许多实战经验和技术难点解决方案,如低功耗优化、抗干扰措施、数据传输可靠性等。 适合人群:嵌入式系统开发者、物联网工程师、工业自动化技术人员。 使用场景及目标:适用于工业环境中需要远程监控和控制温湿度的场合,旨在提高系统的稳定性和可靠性,确保设备能够在恶劣环境下正常运行。 其他说明:文章强调了工业级设备开发过程中需要注意的各种细节,如硬件选型、软件优化、抗干扰设计等,对于从事类似项目的技术人员具有很高的参考价值。

    2023年山东电子商务师考试试题答案.doc

    2023年山东电子商务师考试试题答案.doc

    2023年农村信用社考试计算机.doc

    2023年农村信用社考试计算机.doc

    Java 8 异步编程利器:CompletableFuture详解

    1. CompletableFuture 简介 2. CompletableFuture 基础操作 3. CompletableFuture 异常处理 4. CompletableFuture 组合操作 5. CompletableFuture 的超时和取消 6. CompletableFuture 线程池管理 7. CompletableFuture 实际应用场景

    使用MATLAB中的maptool box工具箱完成了地图投影.zip

    matlab

    matlab 基础学习 1. MATLAB 基础概念

    MATLAB(Matrix Laboratory)是一种广泛应用于科学计算、工程分析和数据可视化的高级编程语言和开发环境。它以矩阵操作为核心,具有强大的数值计算能力和丰富的工具箱支持。以下是MATLAB基础学习的指南,帮助你快速入门并掌握其核心功能。 --- ### **1. MATLAB 基础概念** - **工作区(Workspace)**:存储变量的地方,所有定义的变量都会显示在这里。 - **命令窗口(Command Window)**:输入命令并即时执行的地方。 - **脚本文件(Script File)**:包含一系列MATLAB命令的`.m`文件,可以重复运行。 - **函数文件(Function File)**:定义自定义函数的`.m`文件,可以接受输入参数并返回输出结果。 --- ### **2. MATLAB 基础语法** #### **(1) 变量与数据类型** - MATLAB 是动态类型的,无需显式声明变量类型。 - 常用数据类型包括: - 数值类型:`double`(默认)、`int8`、`uint8` 等。 - 字符串:`string` 或字符数组(如 `'hello'`)。 - 逻辑类型:`true` 和 `false`。 - 示例: ```matlab a = 10; % 整数 b = 3.14; % 浮点数 c = 'Hello'; % 字符串 d = true; % 逻辑值 ``` #### **(2) 矩阵与数组** - MATLAB 的核心是矩阵操作,几乎所有数据都以矩阵形式存储。 - 创建矩阵: ```matlab A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % 3x3 矩阵 B = [10, 20,

    基于Simulink的静止无功发生器(SVG)仿真设计与优化

    内容概要:本文详细介绍了使用Simulink进行静止无功发生器(SVG)仿真的全过程。首先,构建了三相两电平拓扑的主电路,特别关注IGBT模块参数设置和直流侧电容的选择。接着,深入探讨了控制环路的设计,特别是锁相环(PLL)模块的参数调整方法及其对系统性能的影响。文中还提供了多个MATLAB代码片段,用于实现电流控制器、PLL算法以及波形分析等功能。此外,文章强调了仿真过程中常见的陷阱和解决方案,如仿真步长选择、PWM脉冲毛刺处理等。最后,通过FFT分析验证了SVG的补偿效果,展示了显著降低谐波畸变率的实际成果。 适合人群:从事电力系统研究和技术开发的专业人士,尤其是熟悉Simulink和MATLAB的工程师。 使用场景及目标:适用于需要深入了解SVG工作原理和仿真技术的研究人员,旨在提高SVG系统的性能和稳定性,确保无功补偿效果最优。 其他说明:文章不仅提供了详细的理论分析,还结合了大量的实践经验,帮助读者更好地理解和解决实际问题。

    2023年自考电子商务概论试题及答案新编.docx

    2023年自考电子商务概论试题及答案新编.docx

    2023年电子商务概论形成性考核册作业最新.doc

    2023年电子商务概论形成性考核册作业最新.doc

    《基于YOLOv8的智慧工地深基坑降水井水泵运行状态监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

Global site tag (gtag.js) - Google Analytics