Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    validazione indirizzo IPV6

    Ciao a tutti dovrei creare una funzione che passata una stringa mi dica se è un indirizzo di IPV6 valido o no

    in precedenza ho creato una funzione che valida indirizzi di IPV4, ecco il codice per IPV4:

    codice:
    Java
    
    public final static boolean ValidateIPAddress( String  ipAddress )
    	{
    	    String[] parts = ipAddress.split( "\\." );
    
    	    if ( parts.length != 4 )
    	    {
    	        return false;
    	    }
    
    	    for ( String s : parts )
    	    {
    	        int i = Integer.parseInt( s );
    
    	        if ( (i < 0) || (i > 255) )
    	        {
    	            return false;
    	        }
    	    }
    	    
    	    return true;
    	    
    	}
    per IPV6 sono davvero in alto mare qualcuno ha già fatto qualcosa di simile Grazie

  2. #2
    Ho trovato una soluzione sembra funzionare:

    codice:
    java
    
    public final static String IsIP6(String address){
    		try {
    			Inet6Address.getByName(address);
    		} catch (UnknownHostException e) {
    			return "KO";
    		}
    		return "OK";  
    	}
    il mio dubbio è può creare problemi far restituire quel KO nel catch?

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non vedo che problemi debba creare... semmai è questione di stile/logica/manutenibilità.

    codice:
    public final static String IsIP6(String address){
       String result = "";
       try {
          Inet6Address.getByName(address);
          result = "OK";
       } catch (UnknownHostException e) {
          result = "KO";
       }
       return result;  
    }
    In generale io sconsiglio vivamente di inserire più di un'istruzione "return" all'interno di un metodo... in questo modo il codice, oltre ad essere più leggibile, diventa anche più manutenibile (ho uno ed un solo punto di uscita dal metodo e non di più) e più logico (essendo una "funzione" essa ha uno ed un solo valore di ritorno, quindi uno ed un solo return).

    Non mi è chiaro perchè sei passato da un metodo che ritorna un booleano ad uno che ritorna una stringa... sarebbe preferibile tornare al primo, visto che comunque i valori di ritorno sono solo due, uno il contrario dell'altro ("OK" e "KO").


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.