2017-03-18 101 views
0

有沒有辦法檢測到用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"); 
      } 
    } 

但它必須不斷地檢查所有效率不高的時間。當某個其他設備連接到我的局域網時,是否有廣播或信號表示我的電腦收到了?

在此先感謝。

+0

不一定。這裏唯一真正瞭解這種事情的組件是你的路由器/交換機。 – GhostCat

回答

0

方法isReachable()使用ICMP ECHO,並不是每個設備都默認啓用它。如果你正在使用Linux檢查netdiscover這使用ARP我認爲(ARP比TCP/UDP更低,並且使用Java,你只能從TCP/UDP或更高版本創建應用程序)

+0

不幸的是我需要一個適用於Linux和Windows的解決方案...... –