lokale IP auslesen und auf URL weiterleiten

milea

Mitglied
Hallo an alle!

Ich muss zugeben, dass ich erst angefangen habe mich mit Java zu beschäftigen. Deshalb war ich schon sooo froh, dass ich soweit gekommen bin :)

Mein Problem:
Ich möchte die lokale IP eines Rechners im LAN auslesen, schreibe sie in ein String und lese diesen an der 8.Stelle aus. Jenachdem ob die 8.Stelle eine '1' oder '0' ist wird auf spiegel.de bzw. shortnews weitergeleitet.
Das funktioniert prima, wenn ich die Java-Datei in der Konsole ausführe: Es wird meine korrekte lokale IP meines Rechners ausgegeben und ein Browserfenster mit der entprechenden URL öffnet sich.

Java:
//  Auslesen der internen/lokalen IP

import java.net.InetAddress;
import java.applet.Applet; ///muss eingebunden werden, weil ein Applet für Browser erstellt werden soll
import java.awt.Graphics;
import java.net.URL;

//extends für Vererbung an Applet- Klasse
//Main enthält alle methoden und Eigenschaften die Applet hat
public class LokaleIp extends Applet {

    public LokaleIp() {
     //this.myadresse = new String();
     //this.myadresse2 = new String();
    }

    public void paint(Graphics g)
    {
    try {
                 // Holt den Hostnamen
                String localHost = InetAddress.getLocalHost().getHostName();
                 String myadresse = InetAddress.getByName(localHost).getHostAddress();

                 System.out.println(myadresse);

                 // an 8.Stelle da CharAt von links mit 0 anfängt zu zählen
                 if (myadresse.charAt(8) == '1')
                 {
                   URL u=new URL("http://www.spiegel.de");
        this.getAppletContext().showDocument(u);
}
                 else if (myadresse.charAt(8) == '0') {
                      URL u=new URL("http://www.shortnews.de");
        this.getAppletContext().showDocument(u);
           }

        }
        catch(java.net.UnknownHostException ue) {
            ue.printStackTrace();
        }
        catch(java.io.IOException ie) {
            ie.printStackTrace();
        }





    }
       //main-Mthode wird nur in Konsole ausgeführt
    public static void main(String[] args ) {
         try {
                 // Holt den Hostnamen
                String localHost = InetAddress.getLocalHost().getHostName();
                 String myadresse = InetAddress.getByName(localHost).getHostAddress();

                 System.out.println(myadresse);

                 // an 8.Stelle da CharAt von links mit 0 anfängt zu zählen
                 if (myadresse.charAt(8) == '1')
                 {
                   String url = "http://www.spiegel.de/";
                       new ProcessBuilder( "rundll32", "url.dll,FileProtocolHandler", url ).start();
}
                 else if (myadresse.charAt(8) == '0')
                 {
                     String url = "http://www.shortnews.de/";
                       new ProcessBuilder( "rundll32", "url.dll,FileProtocolHandler", url ).start();
                        }

        }
        catch(java.net.UnknownHostException ue) {
            ue.printStackTrace();
        }
        catch(java.io.IOException ie) {
            ie.printStackTrace();
        }



    }

}


Allerdings ist das Ganze eine Anwendung für ein Intranet. Die Java-Datei wird als Applet in eine HTML-Datei integriert und einer Startseite vorgeschaltet.
Dort soll nun die lokale IP des Rechner des Nutzers ausgelesen werden. Entsprechend der 8. Stelle der lokalen IP des Rechners soll -ohne Ausgabe- sofort auf die jeweilige URL weitergeleitet werden.

leider gibt er mir in der Konsole immer die 127.0.0.1 aus und nicht die lokale IP (zB. 192.168.476.89). Und somit ist die 8. Stelle immer =1 und somit komme ich immer zu spiegel.de

Ich hab echt keine Ahnung wie ich das lösen kann und bin für eure Hilfe sehr dankbar!

PS: Es kann nur mit Java realisiert werden, da ich nicht, die vom Router gelieferte IP bekommen will sondern die dem rechner fest zugeordnet statische IP. Außerdem unterstützt mein Server kein php :)
 

Sergeant_Pepper

Bekanntes Mitglied
Hi,

ich habe dein Programm auf der Konsole und als Applet aus Eclipse heraus gestartet.

In beiden Fällen wird die richtige IP-Adresse ausgegeben, also nicht 127.0.0.1.

Vielleicht ist das weniger ein Java-Problem als ein Netzwerk- / Browser- / Proxy-Konfigurationsproblem. Hast du mal mit deinem Netzwerk-Admin gesprochen?
 

milea

Mitglied
Hallo und erstmal Danke für die Antwort!

also mein Admin meint es liegt am java :)
Naja ist schon komisch - wenn ich die html-Datei aufrufe in der dasApplet eingebunden ist gibt er mir immer die 127.0.0.1 - also das ist doch die Server-Ip, oder. Auf die interen IP greift wird dabei nicht zugegriffen. Hab mir jetzt auch den Servernamen ausgeben lassen : localhost.
Kenn mich damit - also mit serverkonfigurationen- null aus :(
Aber vielleicht sagt das ja einen was.
 

Sergeant_Pepper

Bekanntes Mitglied
milea hat gesagt.:
gibt er mir immer die 127.0.0.1 - also das ist doch die Server-Ip
127.0.0.1 ist immer die IP-Adresse von localhost

Was wird denn an der Windows-Kommandozeile ausgegeben, wenn du den Befehl [c]hostname[/c] ausführst? Wenn dein Rechner sauber in das Netzwerk eingebunden ist, darf nicht localhost herauskommen.

Wikipedia sagt zu localhost:
Üblicherweise ist das eigene System (der local host) unter der IP-Adresse 127.0.0.1 für IP-Applikationen auf dieselbe Weise erreichbar, wie ein fernes System (ein remote host) unter einer gewöhnlichen Adresse. Das ermöglicht es unter anderem, Serverapplikationen mit einem Client auf demselben Rechner zu betreiben. Ein solches Vorgehen findet beispielsweise beim Testen von Servern oder zum Betreiben von Spiele-Servern häufige Anwendung.

Um die Erreichbarkeit des eigenen Rechners über IP zu ermöglichen, wird eine Schnittstelle, ein sogenanntes Loopback-Device eingesetzt. Dies verhält sich wie eine virtuelle Netzwerkkarte, die alle ausgehenden Datenpakete an ihren eigenen Eingang weiterleitet. Diese virtuelle Netzwerkkarte hat jedoch keinerlei Verbindung zu eventuell vorhandenen Netzwerkschnittstellen; an 127.0.0.1 geschickte Pakete können daher im Normalfall nicht auf einem physikalisch vorhandenen Link zu einem anderen System erscheinen.
 

milea

Mitglied
Hallo und Guten Morgen!

Ich weiß voran es liegt, dass mir nur die 127.0.0.1 ausgegeben wird. Das ist zwar eine IP auf meienn rechner im Intranet aber es gibt ja noch eine zweite IP - und das ist die lokale IP. deshalb werden jetzt die IP in einer schleife ausgelesen.

Code:
import java.net.*;
import java.util.*;
import java.io.*;
import java.nio.*;
import java.applet.Applet;l
import java.awt.Graphics;

public class LokaleIp extends Applet {


public void  getInterfaces (){
      try {
         Enumeration e = NetworkInterface.getNetworkInterfaces();

         while(e.hasMoreElements()) {
            NetworkInterface ni = (NetworkInterface) e.nextElement();
            System.out.println("Net interface: "+ni.getName());

            Enumeration e2 = ni.getInetAddresses();

            while (e2.hasMoreElements()){
               InetAddress ip = (InetAddress) e2.nextElement();
               System.out.println("IP address: "+ ip.toString());
            }
         }
      }
      catch (Exception e) {
         e.printStackTrace();
      }
   }

   public static void main(String[] args) {
    LokaleIp ip = new LokaleIp();
    ip.getInterfaces();
   }

}

Fein - in der Konsole werden jetzt sowohl die localhost IP 127.0.0.1 als auch meine lokale Ip angegeben.
Den Code hab ich im Internet gefunden. Ich versteh ihn soweit grob :). Aber ich weiß nicht, wie ich ihn in ein Applet packen soll. Ich weiß ich muss ne paint-Methode definieren.Aber was soll da genau rein?
 

Sergeant_Pepper

Bekanntes Mitglied
milea hat gesagt.:
dass mir nur die 127.0.0.1 ausgegeben wird. Das ist zwar eine IP auf meienn rechner im Intranet

würde ich so nicht sagen, denn dein Rechner ist über 127.0.0.1 nicht von einem anderen PC erreichbar, weder aus deinem Intranet noch von sonstwo, siehe Wikipedia-Auszug oben.
 

milea

Mitglied
Hm, na gut.

aber ich weiß noch immer nicht, wie ich dann mein Problem lösen soll. Beim Aufruf der HTMl-datei mit dem Applet gibt er mir jetzt auf der Konsole aus:


Net interface: lo
IP address: /127.0.0.1
Net interface: eth0
Net interface: lo
IP address: /127.0.0.1
Net interface: eth0


Also er findet das ethernet, aber dazu keine IP. Sondern es erscheint wieder nur die 127.0.0.1

Warum bloß? bei Ausführen über die Kommandozeile klappts.
 

milea

Mitglied
ok wenn meine Java_datei nun so aussieht:

Code:
import java.net.*;
import java.util.*;
import java.io.*;
import java.nio.*;
import java.applet.Applet; ///muss eingebunden werden, weil ein Applet für Browser erstellt werden soll
import java.awt.Graphics;


//extends für Vererbung an Applet- Klasse
//Main enthält alle methoden und Eigenschaften die Applet hat
public class LokaleIp extends Applet {

public void paint(Graphics g)
    {
    LokaleIp ip = new LokaleIp();
    ip.getInterfaces();
    System.out.println("IP address: "+ ip.toString());
    }

public void  getInterfaces (){
      try {
         Enumeration e = NetworkInterface.getNetworkInterfaces();

         while(e.hasMoreElements()) {
            NetworkInterface ni = (NetworkInterface) e.nextElement();
            System.out.println("Net interface: "+ni.getName());

            Enumeration e2 = ni.getInetAddresses();

            while (e2.hasMoreElements()){
               InetAddress ip = (InetAddress) e2.nextElement();
               System.out.println("IP address: "+ ip.toString());
            }
         }
      }
      catch (Exception e) {
         e.printStackTrace();
      }
   }

   public static void main(String[] args) {
    LokaleIp ip = new LokaleIp();
    ip.getInterfaces();
   }

}

dann gibt mir die konsole beim Aufruf der HTM-Datei im Browser aus:
Net interface: lo
IP address: /127.0.0.1
Net interface: eth0
IP address: LokaleIp[panel0,0,0,0x0,invalid,layout=java.awt.FlowLayout]
Net interface: lo


WEiß jemand damit was anzugangen? Bitte Bitte!:)
 

Empire Phoenix

Top Contributor
´Beschäftige dich mal mit rechten + applets, soweit ichw eiß haben applets standartmäßig nur rechte auf den server woe die html liegt sowie auf den localhost zuzugreifen. Kann man aber bestimmt irgetwie umgehen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
P Variablen Wie kann ich eine lokale Variable in eine andere Methode einfügen? Java Basics - Anfänger-Themen 27
M Anonyme Klasse und lokale Variable Java Basics - Anfänger-Themen 2
B Lokale Datenbank Java Java Basics - Anfänger-Themen 2
A Variablen lokale Variable als private? Java Basics - Anfänger-Themen 3
C lokale Variable verwenden statt globale Java Basics - Anfänger-Themen 7
O Lokale Klassen Java Basics - Anfänger-Themen 15
D Von einer Methode auf eine lokale Variable in der Main zugreifen? Java Basics - Anfänger-Themen 15
A lokale Variable innerhalb "actionPerformed()" Java Basics - Anfänger-Themen 10
N Mit Kontrukor der Oberklasse lokale Variable initialisieren Java Basics - Anfänger-Themen 2
L Lokale Variable und Instanzvariable innerhalb Iterator Java Basics - Anfänger-Themen 8
J Instanzvariablen - Lokale Variablen - warum der Unterschied? Java Basics - Anfänger-Themen 5
M anonyme nicht-lokale Klassen Java Basics - Anfänger-Themen 13
T zugriff auf lokale variablen? Java Basics - Anfänger-Themen 6
M lokale exe-Datei über Java-Applet starten Java Basics - Anfänger-Themen 4
Developer_X Batch Datei soll auf lokale JLibrary zugreifen Java Basics - Anfänger-Themen 11
hdi kleine Verständnisfrage lokale + Member Variable Java Basics - Anfänger-Themen 10
H Lokale Klassen und Zugriff. Java Basics - Anfänger-Themen 10
L Lokale Variablen automatisch durch Schleife erzeugen Java Basics - Anfänger-Themen 2
E Lokale variablen in methode Java Basics - Anfänger-Themen 6
C Nochmal zu lokale Einstellungen Java Basics - Anfänger-Themen 2
E Lokale Dateien ausführen, IE,FF Java Basics - Anfänger-Themen 3
P Unterschied lokale Variable und Instanzvariable Java Basics - Anfänger-Themen 2
roflomfg Text in eine lokale "*.txt-Datei" speichern Java Basics - Anfänger-Themen 9
7 Lokale Variablen, Klassenvariablen, Instanzvariablen Java Basics - Anfänger-Themen 15
K Lokale Variable in for Schleife Java Basics - Anfänger-Themen 5
S lokale Programme per Button starten Java Basics - Anfänger-Themen 4
G Auf lokale Variablen zugreifen Java Basics - Anfänger-Themen 5
P Lokale Dateien in Java-Applets einlesen Java Basics - Anfänger-Themen 2
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben