西格网络速度

2024-04-24

这个库对于获取 cpu、ram 和其他人员来说非常棒。但是,我不知道如何获得网络速度。这意味着。在一段时间内发送和接收了多少数据?有办法给我这些数据吗?

这可能是我正在寻找的东西吗?

Tcp stat = sigar.getTcp();
stat.getInSegs() + " segments received"
stat.getOutSegs() + " segments send out"

如果糖没有办法,是否有另一个库可以使用?

感谢帮助


output:

{DefaultGateway=193.171.36.1,PrimaryDns=140.78.2.62,SecondaryDns=140.78.3.62,DomainName=,HostName=Schneider-PC}

{名称=eth0,描述=WAN微型端口(IPv6),指标=0,类型=以太网,地址=0.0.0.0,Mtu=1500,网络掩码=0.0.0.0,标志=65,广播=0.0.0.0,Hwaddr=34 :F8:20:52:41:53,目的地=0.0.0.0}

总rx(下载):4.7K

总交易量(上传):154


总rx(下载):1.4K

总交易量(上传):180

code:

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

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;

/**
 * @author Headgrowe
 * 
 */
public class NetworkData {

    static Map<String, Long> rxCurrentMap = new HashMap<String, Long>();
    static Map<String, List<Long>> rxChangeMap = new HashMap<String, List<Long>>();
    static Map<String, Long> txCurrentMap = new HashMap<String, Long>();
    static Map<String, List<Long>> txChangeMap = new HashMap<String, List<Long>>();
    private static Sigar sigar;

    /**
     * @throws InterruptedException
     * @throws SigarException
     * 
     */
    public NetworkData(Sigar s) throws SigarException, InterruptedException {
        sigar = s;
        getMetric();
        System.out.println(networkInfo());
        Thread.sleep(1000);     
    }

    public static void main(String[] args) throws SigarException,
            InterruptedException {
        new NetworkData(new Sigar());
        NetworkData.newMetrickThread();
    }

    public static String networkInfo() throws SigarException {
        String info = sigar.getNetInfo().toString();
        info += "\n"+ sigar.getNetInterfaceConfig().toString();
        return info;
    }
    
    public static String getDefaultGateway() throws SigarException {
        return sigar.getNetInfo().getDefaultGateway();
    }

    public static void newMetricThread() throws SigarException, InterruptedException {
        while (true) {
            Long[] m = getMetric();
            long totalrx = m[0];
            long totaltx = m[1];
            System.out.print("totalrx(download): ");
            System.out.println("\t" + Sigar.formatSize(totalrx));
            System.out.print("totaltx(upload): ");
            System.out.println("\t" + Sigar.formatSize(totaltx));
            System.out.println("-----------------------------------");
            Thread.sleep(1000);
        }

    }

    public static Long[] getMetric() throws SigarException {
        for (String ni : sigar.getNetInterfaceList()) {
            // System.out.println(ni);
            NetInterfaceStat netStat = sigar.getNetInterfaceStat(ni);
            NetInterfaceConfig ifConfig = sigar.getNetInterfaceConfig(ni);
            String hwaddr = null;
            if (!NetFlags.NULL_HWADDR.equals(ifConfig.getHwaddr())) {
                hwaddr = ifConfig.getHwaddr();
            }
            if (hwaddr != null) {
                long rxCurrenttmp = netStat.getRxBytes();
                saveChange(rxCurrentMap, rxChangeMap, hwaddr, rxCurrenttmp, ni);
                long txCurrenttmp = netStat.getTxBytes();
                saveChange(txCurrentMap, txChangeMap, hwaddr, txCurrenttmp, ni);
            }
        }
        long totalrx = getMetricData(rxChangeMap);
        long totaltx = getMetricData(txChangeMap);
        for (List<Long> l : rxChangeMap.values())
            l.clear();
        for (List<Long> l : txChangeMap.values())
            l.clear();
        return new Long[] { totalrx, totaltx };
    }

    private static long getMetricData(Map<String, List<Long>> rxChangeMap) {
        long total = 0;
        for (Entry<String, List<Long>> entry : rxChangeMap.entrySet()) {
            int average = 0;
            for (Long l : entry.getValue()) {
                average += l;
            }
            total += average / entry.getValue().size();
        }
        return total;
    }

    private static void saveChange(Map<String, Long> currentMap,
            Map<String, List<Long>> changeMap, String hwaddr, long current,
            String ni) {
        Long oldCurrent = currentMap.get(ni);
        if (oldCurrent != null) {
            List<Long> list = changeMap.get(hwaddr);
            if (list == null) {
                list = new LinkedList<Long>();
                changeMap.put(hwaddr, list);
            }
            list.add((current - oldCurrent));
        }
        currentMap.put(ni, current);
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

西格网络速度 的相关文章

  • Mockito 在调用参数数量可变的方法时使用参数匹配器

    我试图在对具有可变数量参数的方法的调用中使用参数匹配器 Java 中的东西 没有成功 我的代码如下 我还将列出我尝试用来完成此工作的所有行 import static org mockito Mockito public class Met
  • 从 java sdk 向对等方发送提案时出现访问被拒绝错误

    我正在尝试使用以下代码查询区块链并收到访问被拒绝错误 我也遇到同样的错误sendTransactionProposal方法也是如此 UserContext adminUserContext RegisterEnrollUser regist
  • JDK 文档是语言规范的一部分吗?

    只有一名官员Java语言规范 https docs oracle com javase specs jls se8 html index html所有 Java 实现都必须遵守它 API文档怎么样 所有Java实现都需要遵守吗这个版本 ht
  • 如何将 javax.persistence.Column 定义为 Unsigned TINYINT?

    我正在基于 MySQL 数据库中的现有表创建 Java 持久性实体 Bean 使用 NetBeans IDE 8 0 1 我在这个表中遇到了一个字段 其类型为 无符号 TINYINT 3 我发现可以执行以下操作将列的类型定义为 unsign
  • Java Runtime.getRuntime().freeMemory() 问题

    我搜索并看到了一些线程 但没有一个能够解决我遇到的具体问题 我正在尝试使用以下方式监视我的内存使用情况Runtime getRuntime freeMemory Runtime getRuntime maxMemory and Runtim
  • Spring Security 自定义过滤器

    我想自定义 Spring security 3 0 5 并将登录 URL 更改为 login 而不是 j spring security check 我需要做的是允许登录 目录并保护 admin report html 页面 首先 我使用教
  • Java:无法从同一包中的不同类访问静态变量

    这很奇怪 因为我有一个可以访问 Frame dimension getWidth 的 Character 类 及其伙伴 getHeight 但是当我想在 Map 类中使用它时 Eclipse 强调了它并且无法给我反馈 运行该程序最终会出现
  • org.hibernate.QueryException:无法解析属性:文件名

    我正在使用休眠Criteria从列中获取值filename在我的桌子上contaque recording log 但是当我得到结果时 它抛出异常 org hibernate QueryException 无法解析属性 文件名 com co
  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here
  • Java Swing For mac 中的 DJ Native Swing 浏览器

    我有一个用 Swing 制作的 Java 应用程序 并且使用了一个 DJ Native Swing 浏览器 当我尝试在 OS X 上使用它时 它抛出了一个NoClassDefFoundError尽管我添加了 swt jar 但始终如此 有人
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • Java实现累加器类,提供Collector

    A Collector具有三种通用类型 public interface Collector
  • 使用架构注册表对 avro 消息进行 Spring 云合约测试

    我正在查看 spring 文档和 spring github 我可以看到一些非常基本的内容examples https github com spring cloud samples spring cloud contract sample
  • HashMap 值需要不可变吗?

    我知道 HashMap 中的键需要是不可变的 或者至少确保它们的哈希码 hashCode 不会改变或与另一个具有不同状态的对象发生冲突 但是 HashMap中存储的值是否需要与上面相同 为什么或者为什么不 这个想法是能够改变值 例如在其上调
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • 在 Google App-Engine JAVA 中将文本转换为字符串,反之亦然

    如何从字符串转换为文本 java lang String to com google appengine api datastore Text 反之亦然 Check Javadoc http code google com appengin
  • Hamcrest Matchers - 断言列表类型

    问题 我目前正在尝试使用 Hamcrest Matchers 来断言返回的列表类型是特定类型 例如 假设我的服务调用返回以下列表 List
  • 将 Apache Camel 执行器指标发送到 Prometheus

    我正在尝试转发 添加 Actuator Camel 指标 actuator camelroutes 将交换 交易数量等指标 发送到 Prometheus Actuator 端点 有没有办法让我配置 Camel 将这些指标添加到 Promet
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo

随机推荐

  • 如何从后台服务更新 Android Activity 中的信息

    我正在尝试创建一个简单的Android应用程序 它有一个ActivityList信息 当应用程序启动时 我计划启动一个服务 它将不断计算数据 它会改变 并且我希望ActivityList与服务在应用程序生命周期内计算的数据 如何将我的活动设
  • 为什么 Groovy/Grape 不能解析来自 Maven Central 的工件?

    通过全新下载的 Groovy 2 1 9 我创建了 Test Groovy Grab commons io commons io 1 2 import org apache commons io CopyUtils println Reso
  • 与受保护的内部成员的可访问性不一致

    尝试在公共类中创建受保护内部类的受保护内部成员会导致以下问题 可访问性不一致 字段类型 what Class1 ProtectedInternalClass 比字段更难访问 what Class1 SomeDataProvider data
  • 安装 PyQt

    我正在尝试在我的 mac 上安装 PyQt 以便可以安装 python Ghost 我已经安装了Qt和SIP 我已经下载了 PyQt 但是当我运行时 python configure ng py 我收到以下错误 Error Use the
  • 我可以在 reStructuredText 中使用内联原始 LaTeX

    我正在尝试将 LaTeX 变量嵌入到一些 reStructuredText 中 我知道 raw 指令 但我希望将其嵌入到文本段落中 具体来说 我希望从模板考试文档中复制 numquestions 和 numpoints 变量 我尝试过使用
  • yaml.parser.ParserError:解析块映射时

    ERROR yaml parser ParserError while parsing a block mapping in tmp statelesscs compose yml line 1 column 1 expected
  • github 存储库的本地缓存?

    我们使用 github 来管理我们的大量软件环境 我敢打赌 像许多其他组织一样 该存储库的绝大多数流量来自我们的办公室 考虑到这一点 有没有一种方法可以构建给定 github 存储库的本地缓存 但仍然具有云版本的保护 我在缓存代理服务器的模
  • 设置 stats_flutter 时间序列图表中时间标签的格式以包含 hh:mm:ss

    是否可以格式化charts flutter时间序列图表的x轴上的标签以进行显示hh mm ss 这个答案 https stackoverflow com a 51138909 1954993解释了如何格式化代码以显示月份和日期 但我需要显示
  • 快速加速平均值和标准差

    我正在研究 Accelerate 以计算 Swift 中数组的平均值和标准差 我可以做到这一点 如何计算标准差 let rr Double 18 0 21 0 41 0 42 0 48 0 50 0 55 0 90 0 var mn Dou
  • 除了不可变值对象之外,什么时候应该重写 equals() ?

    很明显equals 而且当然hashCode 在处理不可变值对象时很有价值 映射键 需要在包含它们的对象之间进行比较的强类型字段值等 但除了值对象之外 您有多少可能真正拥有两个独立构造的实例并希望它们成为equal 我很难想象一个现实的场景
  • 我可以使用在 DispatcherServlet Context 中声明的 Hibernate Session Factory 而不是 hibernate.cfg.xml 吗?

    在我之前的 Spring MVC 项目中 我使用 Hibernate 作为 JPA 的提供者 我不必创建hibernate cfg xml文件 因为我已经在 Spring DispatcherServlet 上下文文件中声明了 Hibern
  • 为什么 JSON 应该有一个 status 属性

    我偶然发现了一种相当普遍的做法 我什至找到了一个为其命名的网页 但我忘记了名称 并且无法再在谷歌上找到该页面 实践中 来自 REST 服务的每个 JSON 响应都应具有以下结构 status ok data 或者在错误情况下 status
  • DirectX 11 ClearRenderTargetView 恢复透明缓冲区?

    我正在尝试创建一个使用 directx 进行绘制的窗口opaque上面的内容透明的视图 即桌面显示出来 使用 DirectX11 我尝试执行以下操作 但它并没有使背景透明 事实上 我输入的任何不透明度值都会给出完全相同的结果 我在做什么 f
  • Java ConcurrentHashMap 集合的模式

    我在多线程应用程序中常用的数据结构是 ConcurrentHashMap 我想在其中保存一组共享相同键的项目 安装特定键值的第一个项目时会出现此问题 我一直使用的模式是 final ConcurrentMap
  • Flowtype - 字符串与字符串枚举不兼容

    我有一个来自选择输入且类型为字符串的值 但是我想将其传递到函数中 更新语言 接收带有类型别名 Language 我面临的问题是 Flow 只允许我打电话更新语言如果我明确地将我的字符串值与枚举字符串进行比较 并且我想使用像 array in
  • C#:使用指针类型作为字段?

    在 C 中 可以声明具有指针类型成员的结构 或类 如下所示 unsafe struct Node public Node NextNode 它是否安全 呃 暂时忽略那个具有讽刺意味的小unsafe标志 使用这个结构 我的意思是在堆上长期存储
  • 使用 VSCode 在 Python 中调试期间读取输入

    这是我在 vs code 中使用的 python 扩展 python 扩展 https marketplace visualstudio com items itemName donjayamanne python 当我使用扩展提供的调试功
  • python 中数据库连接池的最佳解决方案是什么?

    我开发了一些类似于 DAO 的自定义类来满足我的项目的一些非常特殊的要求 该项目是一个不在任何类型的框架内运行的服务器端进程 该解决方案效果很好 只是每次发出新请求时 我都会通过 MySQLdb connect 打开一个新连接 将其切换为使
  • 当我提出自己的异常作为响应时,如何更轻松地抑制以前的异常?

    Consider try import someProprietaryModule except ImportError raise ImportError It appears that
  • 西格网络速度

    这个库对于获取 cpu ram 和其他人员来说非常棒 但是 我不知道如何获得网络速度 这意味着 在一段时间内发送和接收了多少数据 有办法给我这些数据吗 这可能是我正在寻找的东西吗 Tcp stat sigar getTcp stat get