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.
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
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