PDA

View Full Version : help with ArrayList...


mia_tech
04-28-2009, 03:23 AM
guys, when I create an object for the IPscanner class is giving me an empty arrayList... the IPscanner class is a subclass of the IPrange so I could use the "range" ArrayList, but still I'm getting an empty array on IPscanner....

public static void main(String[] args) {
IPrange range = new IPrange();
String from = "10.200.50.0";
String to = "10.200.50.10";
range.setFromip(from);
range.setToip(to);
range.StrToIP();
range.calcNetwork();//populating range array here
Runnable scan = new IPscanner();
Thread t = new Thread(scan);
t.start();
}

IPrange

import java.util.*;
public class IPrange {
private String from = "";
private String to = "";
private int[] ip1 = {0,0,0,0};//holds the numeric ip
private int[] ip2 = {0,0,0,0};
private String ipadd = "";
ArrayList<String> range = new ArrayList<String>();
//setters
public void setFromip(String from)
{
this.from = from;
}
public void setToip(String to)
{
this.to = to;
}

//convert from String ip to int[] ip
public void StrToIP()
{
//spliting strings
String[] temp1 = from.split("\\.");
String[] temp2 = to.split("\\.");
//parsing and adding ip to ip Array
for(int i = 0; i < temp1.length; i++)
{
ip1[i] = Integer.parseInt(temp1[i]);
ip2[i] = Integer.parseInt(temp2[i]);
}
}
/**
* identifying type of network class A, B, C
*/
public void calcNetwork()
{
String addr = "";
//adding class A network to Array "range"
if((ip1[1] != ip2[1]) && ( ip1[1] < ip2[1]))
{
for(int i = ip1[1]; i <= ip2[1]; i++)
{
for(int j = 0; j <= 255; j++)
{
for(int k = 0; k <= 255; k++)
{
addr = ip1[0]+"."+i+"."+j+"."+k;
range.add(addr);
}
}
}
}
//adding class B network to Array "range"
else if((ip1[2] != ip2[2]) && (ip1[2] < ip2[2]))
{
for(int i = ip1[2]; i <= ip2[2]; i++)
{
for(int j = 0; j <= 255; j++)
{
addr = ip1[0]+"."+ip1[1]+"."+i+"."+j;
range.add(addr);
}
}
}
//adding class C network to Array "range"
else if((ip1[3] != ip2[3]) && (ip1[3] < ip2[3]))
{
for(int i = ip1[3]; i <= ip2[3]; i++)
{
addr = ip1[0]+"."+ip1[1]+"."+ip1[2]+"."+i;
range.add(addr);
}
System.out.println(range.size());
}
else System.out.println("Enter correct address range!");
}
public ArrayList<String> getRange()
{
return range;
}
}

IPscanner

import java.io.*;
import java.net.*;
public class IPscanner extends IPrange implements Runnable{
private String ipadd = "";

public void run()
{
boolean ping = false;
System.out.println(range.size());
System.out.println("Scanning network "+"\""+range.get(0)+"\""+"...."+"\n");

for(int i = 0; i < range.size(); i++)
{
try
{
int timeout = 1500;
InetAddress address = InetAddress.getByName(range.get(i));
ping = address.isReachable(timeout);
//progressBar1.setValue(i);//updating progress bar
if(ping == true)
{
System.out.print(range.get(i)+" is alive!"+"\n");
}
else
{
System.out.println(range.get(i)+"\n");
}

}
catch(IOException e)
{
System.out.println(e);
}
}
}
public String getIPadd()
{
return ipadd;
}
}