Ho incontrato un bug noto con Java 6 su Windows. La mia comprensione è che il modo normale per ottenere la maschera di rete è di cercare la lunghezza del prefisso di rete e fare alcuni cambiamenti di bit. Il problema è che su Windows la lunghezza del prefisso è spesso restituito in modo non corretto, in modo da ottenere un 128 in cui dovremmo ottenere un 24 o 20.Java e Windows 7: ottenendo in modo affidabile la maschera di rete IPv4?
In this solution, si suggerisce di mettere -Djava.net.preferIPv4Stack=true
nella riga di comando Java. Sfortunatamente, su Windows 7, l'aggiunta di questo come parametro VM o sulla riga di comando di Java sembra non avere alcun effetto.
(a) Qualcuno conosce qualche altro intervento di questo problema che potrebbe ancora funzionare su Windows 7?
(b) In alternativa, esiste un modo completamente diverso per ottenere una maschera di rete affidabile?
Grazie!
P.S. Here is the bug report that pertains to this.
Un'etichetta corretta impone di elencare altri luoghi in cui ho posto questa domanda: http://stackoverflow.com/questions/9299566/java-windows-7-reliable-getting-ipv4-netmask http: // www. codeguru.com/forum/showthread.php?t=521196 https://forums.oracle.com/forums/thread.jspa?threadID=2347643&tstart=0 http://www.coderanch.com/t/567601/ socket/java/Java-Windows-Affidabilità-acquisizione-IPv –
Strana ... l'opzione VM '-Djava.net.preferIPv4Stack = true' funziona nel mio caso con Windows 7 per JRE 1.6. Ho inserito questo nel mio codice Java come 'System.setProperty (" java.net.preferIPv4Stack "," true ")'. A meno che qualcosa (libreria o qualsiasi altra cosa) lo stia ripristinando. Puoi mostrare i tuoi codici di maschera di rete IP? – ecle
Grazie per quella riga di codice. Sto usando Netbeans e c'è un posto dove mettere le opzioni della macchina virtuale. Ho provato a mettere la cosa-D lì. Non andare. Sto anche lanciando l'applicazione utilizzando un wrapper creato da Advanced Installer, e c'è posto per mettere le opzioni della riga di comando. Neanche questo ha funzionato. Vado a provare il tuo suggerimento, aggiungendo quella linea di codice nella parte superiore del mio metodo principale. Grazie! –