Print Friendly, PDF & Email

Ci accingiamo a imparare a fare un controllo porta a livello di programmazione con l'aiuto di Java.Linux macchine hanno più porte rispetto a Windows, per Mac non ho davvero provato l'intervallo di porte valido.

Algoritmo di controllo porta

Per eseguire la porta verifica che cercheremo di connettersi a tutte le porte uno per uno.

Abbiamo solitamente due porta numeri sezioni, inferiore a 1000 le porte sono già riservate ai alcuni sevizi comuni quali posta elettronica, web, desktop remoto, ecc.

Quindi, avendo il problema dichiarato effettueremo i seguenti passaggi:

LEGGERE il nome host o ip
SE ip è NULL
    IP <-"127.0.0.1"
ALTRO
   LEGGERE minport
   LEGGERE maxport
porta <-minport
LOOP
   Porta IF < maxport
       PROVARE
              connettersi all'host
              SCRIVERE "porta aperta"
       IN CASO DI ERRORE
              SCRIVERE "porta chiusa"
    ALTRO
        PAUSA


Codice sorgente

Il codice sorgente completo è composto da 3 file presto io lo upload a github.

Porta Scanner.Java

pacchetto org.javapro;

/**
 * Creato da Javatlacati il 11/12/2016.
 */

importazione java.net.*;
importazione java.io.IOException;
importare java.util.ResourceBundle;
importazione javax.swing.*;

public class PortScanner {
    /**
     * I8n titolare
     */
    public static ResourceBundle resourceBundle = ResourceBundle.getBundle("org.javapro.strings");
    /**
     * Valore della porta minimo
     */
    private int minport;
    /**
     * Valore massimo porta
     */
    private int maxport;
    /**
     * Internet indirizzo ip o il nome host
     */
    privato InetAddress ia;

    /**
     * Crea un oggetto di port scanner
     *
     * @param minport valore minimo della porta
     * @param maxport valore della porta massimo
     * @param ia Internet indirizzo ip o il nome host
     */
    private PortScanner (int minport, int maxport, ia InetAddress) {
        This.MinPort = minport;
        This.MaxPort = maxport;
        This.ia = ia;
    }

    / * public PortScanner (int minport, int maxport) {
        nuovo PortScanner (minport, maxport, null);
    }*/

    /**
     * Scansioni l'indirizzo specificato da è all'interno dell'intervallo di porte da minport e MaxPort (compreso)
     */
    Private Sub scan() genera UnknownHostException {
        Se (ia = = null) {
            Ia = InetAddress.getLocalHost();
        }
        String hostname = ia.getHostName();

        per (int port = minport; port < = maxport; porta + +) {
            provare (Socket ignorato = new Socket (ia, porta)) {
                System.out.printf(ResourceBundle.GetString("Listening"), porta, nome host);
            } catch (IOException ex) {
                L'host remoto non è in ascolto su questa porta
                System.Err.printf (ResourceBundle ("non in ascolto"), porta, nome host);
            }
        }
    }

    /**
     * Punto di ingresso applicazione
     *
     argomenti della riga di comando * @param args (attualmente non elaborati)
     */
    Public Shared Sub main (String [] args) {

        InetAddress ia = null;
        Host di stringa;
        try {

            host = JOptionPane.showInputDialog (ResourceBundle ("Immettere indirizzo ip"));
            Se (host! = null) {
                Ia = InetAddress.getByName(host);
            }
            int min = Integer.valueOf(JOptionPane.showInputDialog(resourceBundle.getString("minimum")));
            int max = Integer.valueOf(JOptionPane.showInputDialog(resourceBundle.getString("maximum")));
            PortScanner ps = nuovo PortScanner (min, max, ia);
            PS.Scan();

        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (NumberFormatException nfe) {
            System.Err.println(ResourceBundle.GetString("ERR_MSG_VALUE"));
            System.Exit(1);
        }
        System.Exit(0);
    }
}

Strings.Properties

enter ip = Inserisci l'ip di scansione o lasciare vuoto per testare il vostro esempio di locale macchina: n: xxx.com
ERR_MSG_VALUE = valore non valido
ascolto = Server è in ascolto sulla porta %d di %sn
massimo = Inserisci il valore massimo della porta
minimo = Inserisci il valore minimo del porto
not ascolto = Server non è in ascolto sulla porta %d di %sn

strings_es.Properties

enter ip = introdurre la ip un escanear o deja vacío para probar tu máquina locale: n ejemplo: xxx.com
ERR_MSG_VALUE = Valor inválido
ascolto = El servidor está escuchando en el puerto %d de %sn
massimo = introdurre el máximo valor del puerto
minimo = introdurre el mínimo valor del puerto
not ascolto non = El servidor está escuchando en el puerto %d de %sn

Radio

Do NOT follow this link or you will be banned from the site!