检测任何连接网络的人

时间:2017-03-18 10:26:09

标签: java networking network-programming

有没有办法通过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");
            }
    }

但它必须不断检查所有时间都是无效的。当其他设备连接到我的局域网时,我的电脑是否收到广播或信号?

提前致谢。

1 个答案:

答案 0 :(得分:0)

方法isReachable()使用ICMP ECHO,并非默认情况下每个设备都启用它。如果您正在使用Linux,请查看netdiscover这使用ARP我认为(ARP低于TCP / UDP,而使用Java,您只能使用TCP / UDP及以上版本创建应用程序)