Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    157

    [Java] Lista pc collegati in rete

    Salve a tutti,
    avrei bisogno di aiuto per fare un'applicazione (in java appunto ) che visualizzi la lista dei pc connessi in rete..

    Purtroppo non conosco molto la programmazione di rete, e avrei bisogno di un aiuto

    Ho cercato con google, ma non sono riuscito a trovare pressochè niente

    Avevo pensato ad una cosa del tipo

    codice:
    leggi la subnet mask locale
    leggi indirizzo ip locale
    ricava il numero possibile di host e provali tutti
    ma i problemi sono molteplici:
    1. Il computer potrebbe non rispondere ad un ping
    2. C'è uno spreco di tempo assurdo

    Mi potete aiutare per favore??? sto impazzendo

  2. #2

    path url o cos'altro???

    Devo praticamente fare lo stesso identico programma per lavoro.. e ho un problema:

    Io mi genero tutti gli IP della subnet, del tipo 10.39.51.*

    10.39.51.0
    10.39.51.1
    10.39.51.2
    ----------
    10.39.51.254

    Ora, io sò che il pc con indirizzo per esempio 10.39.51.0 è accessibile, contiene una cartella chiamata nuovacartella,
    quindi se premo il tasto windows, esegui, \\10.39.51.0\nuovacartella mi viene aperta la finestra.

    Se nel programmino creo un file del tipo:

    File prova = new File("\\\\10.39.51.0\\nuovacartella");
    if( prova.canRead() || prova.canWrite()) System.out.println("Accessibile!");

    Mi dice appunto che è accessibile..

    Ma io ho la necessità di verificare ognuno di questi 255 pc, per cui creo istanze file del tipo :

    File prova2 = new File("\\\\10.39.51.0");
    if(prova2.canRead() || prova2.canWrite() ) System.out.println("Accessibile!");
    else System.out.println("ma anche no");

    la risposta è sempre sempre ma anche no!
    Come tentare di aprire questi ip? trasformandoli in URL? Specificando il protocollo da utilizzare per aprire share remote (netbios)???

  3. #3
    riapro il post perchè mi trovo nella stessa situazione:
    c'è un modo di ottenere la lista degli indirizzi IP connessi alla mia rete locale?
    Grazie mille per l'aiuto

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    213
    ciao ragazzi. una settimana fa mi sono scontrato con lo stesso problema.
    andate a vedere la classe InetAddress e in particolare il metodo isReachable(int) così risolverete il problema. non è il massimo della funzionalità perchè il programa sarà lento, ma almeno funziona. tutto dipende poi se l'ind ip che dovete testare appartengono a una classe conosciuta o dovete fare il test anche per capire a che classe appartenete

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    213
    per quanto riguarda vedere quali pc sono collegati dovete fare un ciclo for

  6. #6
    Ok, grazie mille per la dritta, ora mi documenterò!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    213
    il programma sarà più o meno così(naturalmente dopo andrà fatto con i thread se no addio)

    import java.io.*;
    import java.net.*;
    import java.lang.*;

    public class connessione{
    public static void main(String[] args)throws Exception{

    InetAddress indirizzo=null;
    byte[] mioip=new byte[4];
    int[] mioip2=new int[4];

    mioip=indirizzo.getLocalAddress().getAddress() //controlla questa istruzione. su alcuni tool va inj eccezzione


    //fai un cast da mioip a mioip2 in quanto con i cicli for darà problemi sui byte

    //controlli mioip2[0] che valore ha. in questo modo capisci a che classe appartiene il tuo ip.
    //in base al valore di mioip2[0] fai vari cicli for annidati in modo da assegnare a mioip[1],mioip[2],mioip[3] il valore dei contatori dei cicli(devi rifare il cast!)

    una volta creato l'indirizzo "successivo a mano" guardi il metodo che ti crea un inetaddress in base all' array di byte------->indirizzo.setAddress(mioip) (p.s. non mi ricordo il noime del metodo)

    poi fai X=indirizzo.isreachable(5000); //x è un boolean

    if(x){
    System.pout.println("l'ip tal dei tali esiste");
    }

    il corpo è questop
    poi c'è da migliorarlo con dei thread altrimenti ci mette una vita se è un indirizzo di class eb o a.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    213
    ah scusate se ho per caso scritto il codice in un modo non corretto non evidenziandolo. non ci ho fatto caso. scusate ancora

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.