package p_movi;
// Librerias SSH
import com.jcraft.jsch.*;
import java.awt.*;
import javax.swing.*;
// Librerias PING
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class P_MOVI{
// Variables SSH
public static int j, s2;
public static String ip, val;
public static int ipa = 0;
public static int ipna = 0;
public static String[] IP_NA = new String[1000];
// Variables Ping
public static int i;
public static String ip_on ;
public static String s = null;
public static int ipnv = 0;
public static String[] IP_NV = new String[1000];
// Variable general
public static String[] IP_RE = new String[1000];
public static int re;
public static void main(String[] arg)throws Exception {
//ciclo para validar conexion IP
for (i=20; i<100;i++){
//Lista de comandos
ArrayList<String> commandList = new ArrayList<String>();
// Envia comando ping
commandList.add("ping");
// la ip asignada
commandList.add("172.17.1."+i);
//se guarda en variable
ip_on="172.17.1."+i;
//Llamar linea de comandos
P_MOVI.commands(commandList);
}
// ciclo para validar Raspberry Activos
for(j=20;j<100;j++) {
try{
JSch jsch=new JSch();
String host=null;
if(arg.length>0){
host=arg[0];
}else{
host=("cmrr"+"@172.17.1."+j);
ip="172.17.1."+j;
}
String user=host.substring(0, host.indexOf('@'));
host=host.substring(host.indexOf('@')+1);
Session session=jsch.getSession(user, host, 22);
String passwd = "**********";
session.setPassword(passwd);
UserInfo ui = new MyUserInfo(){
public void showMessage(String message){
JOptionPane.showMessageDialog(null, message);
}
};
session.setUserInfo(ui);
session.connect(30000); // making a connection with timeout.
Channel channel=session.openChannel("shell");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect(3*1000);
}
catch(Exception e){
// System.out.println(e);
val= e.toString();
s2 = val.length();
System.out.println(ip);
// System.out.println(s);
if (s2==87){
IP_NA[ipna]=ip;
ipna++;
}
}
}
System.out.println("Analisis terminado, generar reporte");
System.out.println("____________IP No VALIDAS: _____________");
for(int w=0;w<=ipnv;w++){
if(w%4==0){
System.out.println(IP_NV[w]);
}
}
System.out.println("______________IPs NO ACTIVAS: _____________");
for(int w=0;w<=ipna;w++){
System.out.println(IP_NA[w]);
}
for(int x = 0; x<IP_NA.length;x++){
for(int y = 0; y<IP_NV.length;y++){
if(IP_NV[y] == null ? IP_NA[x] == null : IP_NV[y].equals(IP_NA[x])){
}else{
int r=0;
IP_RE[r]=IP_NA[x];
r++;
re=r;
}
}//ciere for y
}//cierre for x
System.out.println("_____________REPORTE___________");
for(int w=0;w<=re;w++){
System.out.println(IP_RE[w]);
}
}
public static abstract class MyUserInfo
implements UserInfo, UIKeyboardInteractive{
public String getPassword(){ return null; }
public boolean promptYesNo(String str){ return false; }
public String getPassphrase(){ return null; }
public boolean promptPassphrase(String message){ return false; }
public boolean promptPassword(String message){ return false; }
public void showMessage(String message){ }
public String[] promptKeyboardInteractive(String destination,
String name,
String instruction,
String[] prompt,
boolean[] echo){
return null;
}
}
static void commands(ArrayList<String> commandList)
throws Exception
{
ProcessBuilder build = new ProcessBuilder(commandList);
Process process = build.start();
BufferedReader input = new BufferedReader(new InputStreamReader
(process.getInputStream()));
BufferedReader Error = new BufferedReader(new InputStreamReader
(process.getErrorStream()));
while((s = input.readLine()) != null)
{
System.out.println(s);
int length = s.length();
if (length==58){
IP_NV[ipnv]=ip_on;
ipnv++;
}
}
while((s = Error.readLine()) != null)
{
System.out.println("Existe un Error");
System.out.println(s);
}
}
}