Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检测任何正在连接网络的人_Java_Networking_Network Programming - Fatal编程技术网

Java 检测任何正在连接网络的人

Java 检测任何正在连接网络的人,java,networking,network-programming,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)

有没有一种方法可以检测到有人使用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");
            }
    }
String subnet=“192.168.1”;
int超时=1000;
对于(int i=1;i<255;i++){
字符串主机=子网+“+i;
if(InetAddress.getByName(主机).isRecable(超时)){
System.out.println(可以访问主机+);
}
}
但它必须不断地检查,这是不够的。当其他设备连接到我的局域网时,我的电脑是否接收到广播或信号


提前感谢。

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

。这里唯一真正了解这些事情的组件是路由器/交换机。