如何使用java获取网络上的所有IP地址?

如何使用java获取网络上的所有IP地址?,java,network-programming,Java,Network Programming,我正在使用InetAddress类获取网络上的IP地址 问题是,有时我无法获取某些地址,有时,InetAddress无法从网络获取单个IP 有什么问题吗? 谢谢 我尝试了以下代码: public void fatchAllNetworkIP() throws UnknownHostException, IOException { System.out.println("Fetching IP..."); InetAddress localhost = InetAddress.g

我正在使用InetAddress类获取网络上的IP地址

问题是,有时我无法获取某些地址,有时,InetAddress无法从网络获取单个IP

有什么问题吗? 谢谢

我尝试了以下代码:

public void fatchAllNetworkIP() throws UnknownHostException, IOException
{
    System.out.println("Fetching IP...");

    InetAddress localhost = InetAddress.getLocalHost();
    byte[] ip = localhost.getAddress();

    for (int i = 1; i <= 254; i++)
    {
        ip[3] = (byte)i;
        InetAddress address = InetAddress.getByAddress(ip);

        if(address.isReachable(1000))
        {
            //JOptionPane.showMessageDialog(null, address);
            System.out.println("IP Address "+i+"is "+address);
        }
    }
}
public void fatchAllNetworkIP()抛出UnknownHostException,IOException
{
System.out.println(“获取IP…”);
InetAddress localhost=InetAddress.getLocalHost();
字节[]ip=localhost.getAddress();

对于(int i=1;i尝试
java.net.NetworkInterface
,获取所有可用的NetworkInterface,然后获取所有附加的InetAddresses

尝试使用192.168.x.x的示例

public static void main(String args[]) throws UnknownHostException {

        byte[] ip = {(byte)192, (byte)168, 0, 0}; //Note: for 192.168.0.x addresses  
        for (int i = 1; i <= 254; i++)  
        {  
            ip[3] = (byte) i;  
            InetAddress address = InetAddress.getByAddress(ip);  
            System.out.printf("InetAddress1: %s\n", address);
        } 


    }
publicstaticvoidmain(字符串args[])抛出UnknownHostException{
字节[]ip={(字节)192,(字节)168,0,0};//注意:对于192.168.0.x地址

对于(int i=1;i您需要更改超时,以便系统可以检查是否有来自网络机器的回复

if(address.isReachable(2000)) {
    System.out.println("IP Address "+i+"is "+address);
}
如果同样的问题再次出现,请尝试增加超时时间