Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void actionPerformed(ActionEvent e) {
- final FindGateWaysAndIps scanner = new FindGateWaysAndIps();
- if (e.getActionCommand()=="Start Scan"){
- scanner.start();
- }
- if (e.getActionCommand()=="Stop Scan"){
- scanner.interrupt();
- scanner.stopScans();
- }
- }
- String ip = "192.168.";
- String sql =" ";
- static volatile boolean stop = false;
- PingResult AllResaults = new PingResult();
- int [] AllGateWays = new int [256];
- final int NUM_THREADS = Runtime.getRuntime().availableProcessors();
- ExecutorService exec = Executors.newFixedThreadPool(NUM_THREADS*5);
- public void run() {
- stop=true;
- while(stop){
- for (;GateWayKey<=GateWayKeyStop;GateWayKey++){
- if (!stop){
- exec.shutdownNow();
- Thread.currentThread().interrupt();
- break;
- }
- ip="192.168."+GateWayKey+".1";
- AllSQLs.add(exec.submit((new PingTask(ip,GateWayKey,true))));
- }
- if (!stop) {
- exec.shutdownNow();
- Thread.currentThread().interrupt();
- break;
- }
- AllGateWays=GetVectorData.GiveMeGateWays();
- for (int j=0; j<= AllGateWays.length;j++){
- System.out.println("stop je: "+stop);
- if (!stop){
- exec.shutdownNow();
- Thread.currentThread().interrupt();
- break;
- }
- removeDuplicateinVectors();
- //System.out.println("Sada je j"+j);
- for (;SubNetKey<=SubNetKeyStop;SubNetKey++){
- if (!stop){
- exec.shutdownNow();
- Thread.currentThread().interrupt();
- break;
- }
- ip="192.168."+AllGateWays[j]+"."+SubNetKey;
- AllSQLs.add (exec.submit((new PingTask(ip,AllGateWays[j],false))));
- }
- // Process the result here (this is where you insert into the DB)
- //WriteAllDataIntoDataBase();
- }
- exec.shutdown();
- //WriteAllDataIntoDataBase();
- }
- public void stopScans(){
- exec.shutdownNow();
- stop=false;
- }
- public class PingTask implements Callable <String> {
- String ips;
- String sql;
- PingResult PassDataToExternalClass = new PingResult();
- //FindGateWaysAndIps DataProccesor = new FindGateWaysAndIps();
- int GateWay;
- ScanFrame MonitorData = new ScanFrame();
- boolean GateWayORSubNet;
- int [] AllGateWays = new int [256];
- int i=0;
- public int[] GiveMeGateWays(){
- return AllGateWays;
- }
- public PingTask (){
- }
- public PingTask (String ip, int GateWayKey, boolean GateWayORSubNets){
- ips=ip;
- GateWay=GateWayKey;
- GateWayORSubNet=GateWayORSubNets;
- }
- public String call(){
- InetAddress address;
- try {
- address = InetAddress.getByName(ips);//ako nade gateway neka skoci u petlju u kojoj nade IP adrese pripadajuceg gatewaya
- System.out.println("PINGAM: "+ips);
- try {
- if (address.isReachable(2000)) { //pinga gatewaya s 1000ms (jeli je moguce ovo smanjiti da se ubrza proces)?
- System.out.println("Nasa sam IP: "+ips);
- AllGateWays[i]=GateWay;
- i++;
- MonitorData.WriteMonitorData(ips,address.getHostName().toString(),"2000","da");
- if (GateWayORSubNet){
- sql="REPLACE INTO `gateways` (`ID_GATEWAY` , `GATEWAY_IP` , `GATEWAY_NAME`) VALUES ('"+GateWay+"', '"+ips+"', '"+address.getHostName().toString()+"');";
- return sql;
- }
- else{
- sql="REPLACE INTO `subnets` (`IP` , `COMPUTER_NAME` , `GATEWAY_KEY`) VALUES ('"+ips+"', '"+address.getHostName().toString()+"', '"+GateWay+"');";
- return sql;
- }
- } else {
- return ";";
- }
- } catch (IOException e) {
- return ";";
- }
- } catch (UnknownHostException e) {
- return ";";
- }
- }
- }
- while(true){
- }
- while(!Thread.currentThread.isInterrupted){
- }
- //do here what to do in order to exit and clean safely your job and used resources like open filed.
- catch(InterruptedException e){
- //do nothing
- }
- catch(InterruptedException e){
- Thread.currentThread.interrupt();
- }
Add Comment
Please, Sign In to add comment