Avatar billede skov_p Praktikant
02. maj 2003 - 22:41 Der er 14 kommentarer og
1 løsning

InetAddress.getLocalHost() giver ikke den nye adresse

Jeg bruger metoden InetAddress.getLocalHost() til at checke min IP adresse hvert sek. men hvis jeg manuelt skifter adresse bliver mit program ikke opdateret.

public String getIP(){
        String ipAdr ="";
        InetAddress host = null;
        try{
            host = InetAddress.getLocalHost();
            ipAdr = host.getHostAddress();
        }catch (UnknownHostException ex){
            return "Error";
        }
        return ipAdr;
}
Avatar billede arne_v Ekspert
02. maj 2003 - 23:00 #1
Den cacher nok informationen.

Hvorfor vil du checke din IP hver sekund ?
Avatar billede skov_p Praktikant
02. maj 2003 - 23:04 #2
Hvis jeg genstarter programmet bliver den nye adresse vist, så jeg skal vel lave en eller anden slags new...

Det er en lang historie men det er noget med at mit lan modem selv ringer op uden prompt hvis jeg bruger nogle bestemte adresser.
Avatar billede arne_v Ekspert
02. maj 2003 - 23:13 #3
Prøv med:

System.setProperty("networkaddress.cache.ttl", 1);

og se om ikke den opfører sig bedre.
Avatar billede arne_v Ekspert
02. maj 2003 - 23:14 #4
System.setProperty("networkaddress.cache.ttl", "1");

naturligvis ("" omkring 1).
Avatar billede skov_p Praktikant
02. maj 2003 - 23:23 #5
Jeg bruger J++ og der findes ikke den metode.
Jeg har System.setProperties( java.util.properties p1 )
Avatar billede arne_v Ekspert
02. maj 2003 - 23:31 #6
Suk.

Så prøv med:

Properties p = System.getProperties();
p.setProperty("networkaddress.cache.ttl", "1");
System.setProperties(p);
Avatar billede skov_p Praktikant
02. maj 2003 - 23:43 #7
Sorry, den skifter stadig ikke før end at jeg genstarter programet
Avatar billede skov_p Praktikant
02. maj 2003 - 23:52 #8
Du kan godt få den lange historie...
Jeg har et 3Com ISDN Lanmodem som forbinder til nettet som det passer den.
Jeg har lavet 2 bat filer der gøt at mine lan settings skifter fra Dynamisk til statisk. Jeg kan sætte modemet til at nægte adgang for bestemte IP adresser så når jeg kører den ene bat fil sætter jeg min IP adresse til en NoAccess IP. Og når jeg kører den anden bat fil går jeg tilbage til DHCP. Nu mangler jeg at finde ud af hvilken status jeg er i efter en reboot og det kan jeg gøre ved at checke IP adressen...
Avatar billede arne_v Ekspert
02. maj 2003 - 23:53 #9
Jeg har også fundet den property i dokumentationen for SUN Java 1.4
og MS J++ er meget ældre end den.

Jeg er nok løbet tør for ideer så.

:-(
Avatar billede arne_v Ekspert
02. maj 2003 - 23:55 #10
Så forstår jeg slet ikke problem-stillingen.

Hvis du kun skal bruge informationen efter en reboot så er
det vel ikke noget problem at genstarte programmet ??
Avatar billede skov_p Praktikant
03. maj 2003 - 00:08 #11
Programmet skal starte sammen med PC'en så der er ingen problemer men det er ikke særlig dynamisk hvis jeg ikke kan se når der sker ændringer.
Det med reboot var bare et eksempel hvor man ikke var klar over hvor man stod.
Jeg kan jo altid køre den ene bat fil, så ved jeg jo hvad status er. Men det virker ikke særlig proff...
Avatar billede skov_p Praktikant
03. maj 2003 - 00:09 #12
Du kan nu godt få pointene for din flittighed en fredag aften...
Avatar billede arne_v Ekspert
03. maj 2003 - 00:12 #13
Nå sådan.

Jeg er lidt lost - har ikke selv J++.

Men jeg takker for pointene.
Avatar billede skov_p Praktikant
03. maj 2003 - 00:12 #14
Det undre mig lidt at den ikke ændre sig.
hvert sek. laver jeg en new af GetIP og deri ligger metoden getIP.
Avatar billede arne_v Ekspert
03. maj 2003 - 00:15 #15
Det er ikke nok hvis Java cacher den bag ryggen på dig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester