elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda - Java ver servicio en un puerto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda - Java ver servicio en un puerto  (Leído 1,557 veces)
MetaNoia

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Duda - Java ver servicio en un puerto
« en: 4 Septiembre 2019, 16:23 pm »

Buenas a todos, estoy haciendo un programa en Java para recopilar todos los host conectados a mi red y sondear los puertos de cada uno de ellos para despues ver los servicios y su correspondiente version. El problema es que no se como ver los servicios tras cada puerto, he intentado mirar informacion sobre "get service by port java"  pero no encuentro mucho. Un saludo.
PD: Se que el escaner se puede refactorizar mediante el uso de hilos pero primero me gustaria que funcione, cualquier sugerencia es bienvenida.

Clase Main:
Código:

package javaescanerpuertosredloca;

import java.util.List;

public class Main
{         
    public static void main(String[] args)
    {               
        RedLocal red = new RedLocal();
        List hosts = red.getHosts();
        for (Object ip : hosts)
        {
            System.out.println(ip.toString());
        }
    }
}
Clase red local:
Código:

package javaescanerpuertosredlocal;

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

public class RedLocal
{
    private List<Host> hosts;

    public RedLocal()
    {
        this.hosts = new ArrayList<>();
    }

    public List<Host> getHosts()
    {
        byte[] ip = {(byte)192, (byte)168, 1, 0}; //Valido para 192.168.1.x   
        for (int i = 1; i <= 254; i++) 
        {             
            try
            {
                ip[3] = (byte) i; 
                InetAddress address; 
                address = InetAddress.getByAddress(ip);
                if(address.isReachable(1000))
                {
                    this.hosts.add(new Host(address));                     
                }
            }
            catch (UnknownHostException ex)
            {
               
            }
            catch (IOException ex)
            {
               
            }
           
        }
        return hosts;
    }

    public void setHosts(List<Host> hosts)
    {
        this.hosts = hosts;
    }
   

    @Override
    public String toString()
    {
        return "RedLocal{" + "hosts=" + hosts + '}';
    }
}


Clase Puerto:
Código:

package javaescanerpuertosredloca;

public class Puerto
{
    private int puerto;
    private Servicio servicio;

    public Puerto(int puerto)
    {
        this.puerto = puerto;
    }

    public int getPuerto()
    {
        return puerto;
    }

    public void setPuerto(int puerto)
    {
        this.puerto = puerto;
    }

    @Override
    public String toString()
    {
        return "Puerto{" + "puerto=" + puerto + '}';
    }                   
}
Clase host:
Código:

package javaescanerpuertosredlocal;

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class Host
{
    private List<Puerto> puertos;
    private InetAddress ip;

    public Host(InetAddress ip)
    {
        this.puertos = new ArrayList<>();       
        this.ip = ip;
        getPuertos();
    }
   
    public List<Puerto> getPuertos()
    {
       
        for(int i=0;i<65500;i++)
        {
            try
            {
                Socket socket = new Socket();
                socket.connect(new InetSocketAddress(ip, i), 200);             
                this.puertos.add(new Puerto(i));
                socket.close();
            }
            catch (IOException ex)
            {
               
            }
        }
        return puertos;
    }

    public void setPuertos(List<Puerto> puertos)
    {
        this.puertos = puertos;
    }

    @Override
    public String toString()
    {
        return ip+"{" + "puertos=" + puertos + '}';
    } 
}

Y faltaria la clase Servicio que no se como hacerla


En línea

Código:
<?php
       header("Location: TheHackerWay");
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Puerto serial En Java con Windows
Java
jmrinconf 0 5,643 Último mensaje 6 Marzo 2007, 22:51 pm
por jmrinconf
Programar Puerto USB desde java
Java
cyberserver 3 9,912 Último mensaje 15 Mayo 2010, 00:34 am
por Debci
Puerto Paralelo Java
Java
taliban626 7 6,505 Último mensaje 2 Septiembre 2011, 05:53 am
por egyware
duda carga de servicio sin que carge el programa de dicho servicio en el regedit
Windows
lessionone 5 3,708 Último mensaje 26 Noviembre 2011, 07:05 am
por Randomize
Java puerto ethernet
Java
Yizrerel 0 1,688 Último mensaje 21 Agosto 2015, 02:47 am
por Yizrerel
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines