【问题标题】:Detect anyone connecting network检测任何连接网络的人
【发布时间】:2017-03-18 18:39:27
【问题描述】:

有没有一种方法可以检测到有人使用 Java 连接到您的网络?比如当有人连接到您的网络时会发出警报的事件监听器?

例如我正在使用此代码

    String subnet = "192.168.1";
    int timeout = 1000;
    for (int i = 1; i < 255; i++) {
            String host = subnet + "." + i;
            if (InetAddress.getByName(host).isReachable(timeout)) {
                System.out.println(host + " is reachable");
            }
    }

但它必须一直不断地检查,这是低效的。当其他设备连接到我的局域网时,我的电脑是否接收到广播或信号?

提前致谢。

【问题讨论】:

  • 不一定。这里唯一真正知道这些事情的组件是您的路由器/交换机。

标签: java networking network-programming


【解决方案1】:

方法 isReachable() 使用 ICMP ECHO,并不是每个设备都默认启用它。如果您使用的是 Linux,请查看 netdiscover 我认为这使用了 ARP(ARP 比 TCP/UDP 低,而使用 Java,您只能从 TCP/UDP 及更高版本创建应用程序)

【讨论】:

    猜你喜欢
    • 2012-09-23
    • 2010-10-10
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2021-05-26
    • 2019-04-28
    相关资源
    最近更新 更多