如何确保我的 windows 系统已连接到网络

How to make sure that my windows system is connected to network

我正在创建一个实用程序,该实用程序还包含连接到我的网络的几个 IP 地址的列表。

我需要创建一个不断刷新该列表的模块,以便该列表中仅存在活动的 IP。 我想通过在每个 IP 上使用 PING 并删除无响应的 IP 来实现这一点。

问题是,当我的系统本身未连接到网络时,我不想删除 IP,因为在这种情况下,所有 IP 都将出于显而易见的原因被删除。

如何确定我的系统已连接到某个网络? 我正在使用 Java。 我试过查看其他问题,但找不到任何相关内容。

[编辑1] IP 列表是手动添加的,服务器还有几个我不需要关心的 IP about.So 我无法按照下面@Hoijf 的建议在整个服务器中进行查找。 IP 也不断变化,这就是为什么我需要更新我的列表,以便我们可以替换无响应的 servers/IP。

  1. 扫描网络并保存活动的 IP。
  2. 将 IP 存储在一个数组中并迭代此数组,直到用户选择停止或刷新(返回到步骤 1)。
  3. 显示每个IP的状态。

    public class temp
    {
    static ArrayList<InetAddress> history = new ArrayList<InetAddress>();
    static Timer timer;
    static InetAddress add;
    public static void main(String[] args)
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int timeout = 25;
        timer = new Timer(1000, new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
        {
            for(InetAddress ii : history)
            {
                try
                {
                    System.out.println(ii+" >> "+ii.isReachable(timeout));
                } catch (IOException e1){System.out.println(ii+" >>                          Failed");}
            }
        }
    });
    Thread t = new Thread(new Runnable()
    {
        @Override
        public void run()
        {
            while(true)
            {
                try
                {
                    history.add(InetAddress.getByName(br.readLine()));
                } catch (UnknownHostException e)
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e)
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        });
        t.start();
        timer.start();
    }
    

    }

Problem is that I dont want to delete IP's when my System itself is not connected to network as in that case all of the IP's will get deleted for obvious reasons.

这是一个典型的网络隔离问题。您应该考虑您的 LAN 仍在运行的情况(ipconfig 会将 NIC 的状态显示为 UP),但是您已经失去了互联网连接(在某些上游路由器上)。作为解决方案,您可以考虑 ping 一个应该始终正常运行的参考 IP/host。 因此,您应该在您的程序中创建一个策略来 ping 这个引用主机,以检查您是否应该从您的活动列表中删除该主机。