Avatar billede meek Nybegynder
07. maj 2002 - 17:07 Der er 17 kommentarer og
1 løsning

egen IP-adresse

Hej eksperter;

Jeg har brug for at printe min egen IP ud vha. system.out.println();

Hvordan gør jeg dette hurtigst !!

Meek
Avatar billede stefan_jensen Nybegynder
07. maj 2002 - 17:08 #1
kør - ipconfig
Avatar billede stefan_jensen Nybegynder
07. maj 2002 - 17:08 #2
kør - ipconfig
Avatar billede disky Nybegynder
07. maj 2002 - 17:12 #3
flot stefan, han skal gøre det via JAVA
Avatar billede stefan_jensen Nybegynder
07. maj 2002 - 17:12 #4
ups.. sorry
Avatar billede disky Nybegynder
07. maj 2002 - 17:14 #5
Du bruger java.net.NetworkInterface til det, den kan fortælle dig hvilke IP adresser der er bundet til dit netkort.

Virker dog først fra jdk1.4
Avatar billede disky Nybegynder
07. maj 2002 - 17:14 #6
stefan: det er bare helt ok :)
Avatar billede Slettet bruger
07. maj 2002 - 17:16 #7
import java.net.InetAddress;
import java.net.UnknownHostException;

public class InetTest
{
    public static void main(String [] args)
    {
        try
        {
            InetAddress ia = InetAddress.getLocalHost();
            System.out.println(ia.getHostAddress());
        }
        catch(java.net.UnknownHostException uhe)
        {
            System.out.println("UnknownHostException");
        }

    }
}
Avatar billede disky Nybegynder
07. maj 2002 - 17:17 #8
sådanne kan man også :)
Avatar billede Slettet bruger
07. maj 2002 - 17:19 #9
:)
Avatar billede meek Nybegynder
07. maj 2002 - 17:49 #10
ok cool..
det virker skam !!

Hvordan får jeg nu fat i maskinens DNS-navn fra nettet !!

Jeg kan ikke bruge 10.0.0.2 til så meget.. jeg vil hellere vide : port237.ds1-sg.adsl.cybercity.dk

se evt. http://emil.codebase.dk - der får I jeres DNS-navn !!!
Avatar billede meek Nybegynder
07. maj 2002 - 17:51 #11
det er jo med andre ord et DNS opslag jeg vil have.....
Avatar billede carstenknudsen Nybegynder
08. maj 2002 - 11:18 #12
Prøv med:
INetAddress ip = InetAddress.getByName("localhost");
String name = ip.getLocalHost().getHostAddress();
det virker hos mig
Avatar billede meek Nybegynder
09. maj 2002 - 00:54 #13
> carstenknudsen - dit svar er det samme jeg kom frem til. Dog hjælper det ikke meget når man sidder bag en ADSL-router, eller en anden type proxy. Jeg går efter DNS-navnet på den klient jeg sidder på.

Det skal bruges i forbindelse med noget RMI, hvor serveren skal logge på hvilke klienter der logger på. Hvis klienten ikke kan give sit "rigtige" DNS-navn er jeg jo lige vidt.

jeg tog derfor fat i http://emil.codebase.dk -> hvor man kan se sin maskines "rigtige" DNS-navn ??
Avatar billede meek Nybegynder
09. maj 2002 - 00:54 #14
men emil.codebase.dk er jo PHP og ik' JAVA ?`:))
Avatar billede disky Nybegynder
09. maj 2002 - 07:52 #15
meek, netop og det er derfor ikke brugbart!
Avatar billede carstenknudsen Nybegynder
09. maj 2002 - 08:53 #16
Jamen så har du jo selv svaret meek. Du
kan kontakte emil.codebase.dk og læse
svaret (hvis det er en stabil server der
vil være tilgængelig længe). Hvis du kender
protokollen skal du bare oprette en socket:
Socket socket = new Socket("emil.codebase.dk",80);
og via OutputStream og InputStream læse
resultatet. Et klodset alternativ er at
oprette en JEditorPane og kalde
setPage(new URL("http://emil.codebase.dk"))
og så med getText få indholdet der kom
derfra. Som sagt ikke en elegant løsning
men det skulle virke og kan afprøves hurtigt.
Avatar billede carstenknudsen Nybegynder
09. maj 2002 - 08:58 #17
Har afprøvet den sidste løsning og
den virker; du skal naturligvis
ikke vise JEditorPane'n grafisk
den skal bare ligge i "baggrunden".
JEditorPane pane = new JEditorPane();
pane.setPage( new URL("http://emil.codebase.dk") );
String text = pane.getText();
Så har du htm teksten og den kan du
let med indexOf og substring få ekstraheret
din adresse.
Avatar billede meek Nybegynder
26. maj 2002 - 18:51 #18
ups.. jeg fik vidst aldrig svaret tilbage..
>Carstennudsen Jeg har ikke brugt din løsning, men min løsning er kraftigt inspireret af den, her er mig:

public static String getHostNavn() throws IOException {
      try {
        URL url = new URL("http://haggren.codebase.dk/ip.php");
        BufferedReader adresse = new BufferedReader(new InputStreamReader(url.openStream()));
        String h = "" + InetAddress.getLocalHost().getHostAddress() + "- (" + adresse.readLine() + ")";
        return h;
      }
      catch (IOException e) {
        System.err.println("Kan ikke finde DNS-navn. Klienten kan ikke få forbindelse med codebase.dk" );
        System.err.println("Finder maskinens eget opslag..." );
      }
      String n1 = "" + InetAddress.getLocalHost().getHostAddress();
      return n1;
    }

Hvis klienten er på internettet læser den indholdet: http://haggren.codebase.dk/ip.php - og bruger det.. hvis den ikke er på nettet nøjes den med Java's netbios opslag !!

Meek
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