【问题标题】:How to iterate through the list of IPv4 network addresses in Java or Android one by one?如何在 Java 或 Android 中一一遍历 IPv4 网络地址列表?
【发布时间】:2014-10-19 14:41:48
【问题描述】:

如何逐一遍历Java或Android中可用的IPv4网络地址列表?

[这是一个自我回答的问题]

【问题讨论】:

    标签: java android sockets networking ip


    【解决方案1】:

    可能的解决方案如下:

       private Enumeration<NetworkInterface> networkInterfaces = null;
       private Enumeration<InetAddress> networkAddresses = null;
    
       ...
            try
            {
                while(true)
                {
                    if(this.networkInterfaces == null)
                    {
                        networkInterfaces = NetworkInterface.getNetworkInterfaces();
                    }
                    if(networkAddresses == null || !networkAddresses.hasMoreElements())
                    {
                        if(networkInterfaces.hasMoreElements())
                        {
                            NetworkInterface networkInterface = networkInterfaces.nextElement();
                            networkAddresses = networkInterface.getInetAddresses();
                        }
                        else
                        {
                            networkInterfaces = null;
                        }
                    }
                    else
                    {
                        if(networkAddresses.hasMoreElements())
                        {
                            String address = networkAddresses.nextElement().getHostAddress();
                            if(address.contains(".")) //IPv4 address
                            {
                                textView.setText(address);
                            }
                            break;
                        }
                        else
                        {
                            networkAddresses = null;
                        }
                    }
                }
            }
            catch(SocketException e)
            {
                e.printStackTrace();
            }
    

    点击一个按钮,这会将显示的 IP 地址更改为网络接口上的下一个可用 IP 地址。这样,可以一次显示一个 IP 地址。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 2019-12-08
      相关资源
      最近更新 更多