Scaner de IP’s de una red local a travez de tu propia IP en Java

Posted: febam112011 1, 2008 in General

El siguiente código en java, te obtiene la ip de tu maquina y el nombre de host…luego realiza un scaneo a travez de la vilan que la obtuvo de la ip, verificando si existe respuesta, el rango de ips va desde la 1 a la 255.

import java.io.IOException;
import java.net.InetAddress;

/**
*
*@authorCesarin
*/
public class Prueba {

    public static void main(String[] args){
        try{
        InetAddress address= InetAddress.getLocalHost();
        String sHostName;
        sHostName = address.getHostName();
        System.out.println(sHostName);
        byte[] bIPAddress = address.getAddress();

        // IP en formato String
        String sIPAddress = "";

        for (int x=0; x 0) {
    // A todos los numeros les anteponemos
    // un punto menos al primero
                sIPAddress += ".";
            }
  // Jugamos con los bytes y cambiamos el bit del signo
            sIPAddress += bIPAddress[x] & 255;
        }
        System.out.println(sIPAddress);
        ping(sIPAddress);
        pingRedLocal(sIPAddress);
        }catch(IOException e){
           e.printStackTrace();
        }
    }
    public static void ping (String ip){
        try{
        InetAddress in;
//Definimos la ip de la cual haremos el ping
        in = InetAddress.getByName(ip);
//Definimos un tiempo en el cual ha de responder
        if(in.isReachable(4000)){
        System.out.println("Responde OK");}
        else{
        System.out.println("No responde: Time out");
        }
        }catch(IOException e){
            e.printStackTrace();
        }
     }
    public static void pingRedLocal (String ip){
        int pos=ip.indexOf('.');
        int cont=0;
        System.out.println(pos);
        while(cont<2){
            pos=ip.indexOf('.',pos+1);
            cont++;
        }
        System.out.println(pos);

        String ipAux=ip.substring(0, pos);
        System.out.println(ipAux);
        int cont2=1;
        String union;
        while(cont2<255){
            union=ipAux+"."+cont2;
            System.out.println(union);
            ping(union);
            cont2++;
        }

    }
}
Advertisement
Comentarios
  1. Carlos dice:

    Hola César,

    Para darle mejor presentación puedes usar un plugin de presentación de código, revisa este link, que te puede servir. http://wordpress.org/extend/plugins/google-syntax-highlighter/

    Chévere el blog.

    Saludos,

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s