Bin Anfänger ... das Thema auch ?

TFT

Mitglied
Hallo,

ich mache meine ersten Gehversuche in OOP und JAVA. Ich schreibe ein kleines Tool das mir für Online Gaming die IP Adressen und noch einige weiter Infos ausgibt. Bei dem nachfolgendem Code werden einige IP Adressen ausgegeben die ich nicht verstehe. Ich habe zwar nicht so viel Ahnung aber das sieht mir nach IP6 Notation aus.

Meine erste Class

Java:
package Class;

import java.net.*;
import java.util.*;		

public class ipListe {
	
	private String url;
		
	// Instanze-Methoden
	// <Rückgabetype> <name> ([<Parameterliste>]) ( Rumpf (Logic)  )	
	
	private void setUrl(String newUrl){
		// hir kann noch auswertung für die korektheit der angegeben URL plaziert werden.
		url = newUrl;
	}

	public String getUrl(){
		// Nur zur kontrolle der gesetzten URL.
		return url;
	}
	
		
	public void printIpListe(){
//-----------------------------------------------------------------------------------------------------
		try{
			// Hole IP durch aufruf "ip.php" auf einem Server
			URL u = new URL(url);
			// die JAVA Scanner util öffnet einen Stream
			Scanner scanner = new Scanner(u.openStream());
			// hir werden die vom Server zurück geschickten Daten des PHP Scriptes
			// gelesen und ausgegeben
			while(scanner.hasNextLine()){
				System.out.println(scanner.nextLine());
			} 
			// hir wird der Stream wider geschlossen.
			scanner.close();
			 
        }catch(Exception e){
        	System.out.println("Exception caught ="+e.getMessage());
     	}
		System.out.println ("-------------------------------------------------------------------");	
//-----------------------------------------------------------------------------------------------------
		try{
			// Hole Locale IP vom System
			InetAddress ownIP=InetAddress.getLocalHost();
			System.out.println("IP of my system is := "+ownIP.getHostAddress());
		}catch (Exception e){
			System.out.println("Exception caught ="+e.getMessage());
		}
		System.out.println ("-------------------------------------------------------------------");
//-----------------------------------------------------------------------------------------------------
		try{
			String hostName = InetAddress.getLocalHost().getHostName();
			InetAddress addrs[] = InetAddress.getAllByName(hostName);
			String myIp = "UNKNOWN";
			for (InetAddress addr: addrs) {
				System.out.println ("addr.getHostAddress() = " + addr.getHostAddress());
				System.out.println ("addr.getHostName() = " + addr.getHostName());
				System.out.println ("addr.isAnyLocalAddress() = " + addr.isAnyLocalAddress());
				System.out.println ("addr.isLinkLocalAddress() = " + addr.isLinkLocalAddress());
				System.out.println ("addr.isLoopbackAddress() = " + addr.isLoopbackAddress());
				System.out.println ("addr.isMulticastAddress() = " + addr.isMulticastAddress());
				System.out.println ("addr.isSiteLocalAddress() = " + addr.isSiteLocalAddress());
				System.out.println ("");
				if (!addr.isLoopbackAddress() == addr.isSiteLocalAddress()) {
					myIp = addr.getHostAddress();
				}
			}
			System.out.println ("\nIP = " + myIp);
		}catch(Exception e){
			System.out.println("Exception caught ="+e.getMessage());
		}
		System.out.println ("-------------------------------------------------------------------");
//-----------------------------------------------------------------------------------------------------

        try {
            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
                NetworkInterface intf = en.nextElement();
                for (Enumeration<InetAddress> enumIpAddr = intf
                        .getInetAddresses(); enumIpAddr.hasMoreElements();) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) {
                    	System.out.println(inetAddress.getHostAddress().toString());
                    }
                }
            }
        } catch (SocketException e) {
        	System.out.println("Exception caught ="+e.getMessage()); 
        }
     
        System.out.println ("-------------------------------------------------------------------");
 //-----------------------------------------------------------------------------------------------------

 //-----------------------------------------------------------------------------------------------------

	}
	

	// Konstrucktor
	
	public ipListe(String urlToGetIp){
		// im Konstrucktor können auch Instanz Methoden verwendet werden.
		
		setUrl(urlToGetIp);
		printIpListe();
		
	}
	

}

Die Main Class

Java:
package Programm; 

import Class.ipListe;

class GetIP {
	
	int c = 0 ;
	
	public static void main(String [] args) {
		
		ipListe c = new ipListe("http://www.optima-code.ch/ip.php");
		
	}

}


Und das ist die dazugehörige Ausgabe.

// -------------------------------------------------------

IP-ADDRESS: 178.195.225.61
-------------------------------------------------------------------
IP of my system is := 10.0.0.8
-------------------------------------------------------------------
addr.getHostAddress() = 10.0.0.8
addr.getHostName() = TurgutTemucin
addr.isAnyLocalAddress() = false
addr.isLinkLocalAddress() = false
addr.isLoopbackAddress() = false
addr.isMulticastAddress() = false
addr.isSiteLocalAddress() = true

addr.getHostAddress() = 5.91.252.197
addr.getHostName() = TurgutTemucin
addr.isAnyLocalAddress() = false
addr.isLinkLocalAddress() = false
addr.isLoopbackAddress() = false
addr.isMulticastAddress() = false
addr.isSiteLocalAddress() = false

addr.getHostAddress() = fe80:0:0:0:9887:9457:439c:b7fa%10
addr.getHostName() = TurgutTemucin
addr.isAnyLocalAddress() = false
addr.isLinkLocalAddress() = true
addr.isLoopbackAddress() = false
addr.isMulticastAddress() = false
addr.isSiteLocalAddress() = false

addr.getHostAddress() = fe80:0:0:0:286d:1b0b:4d3c:1ec2%13
addr.getHostName() = TurgutTemucin
addr.isAnyLocalAddress() = false
addr.isLinkLocalAddress() = true
addr.isLoopbackAddress() = false
addr.isMulticastAddress() = false
addr.isSiteLocalAddress() = false

addr.getHostAddress() = 2002:55b:fcc5:0:0:0:55b:fcc5
addr.getHostName() = TurgutTemucin
addr.isAnyLocalAddress() = false
addr.isLinkLocalAddress() = false
addr.isLoopbackAddress() = false
addr.isMulticastAddress() = false
addr.isSiteLocalAddress() = false

addr.getHostAddress() = 2001:0:5ef5:79fb:286d:1b0b:4d3c:1ec2
addr.getHostName() = TurgutTemucin
addr.isAnyLocalAddress() = false
addr.isLinkLocalAddress() = false
addr.isLoopbackAddress() = false
addr.isMulticastAddress() = false
addr.isSiteLocalAddress() = false


IP = 10.0.0.8
-------------------------------------------------------------------
10.0.0.8
fe80:0:0:0:9887:9457:439c:b7fa%10
fe80:0:0:0:0:5efe:a00:8%11
2002:55b:fcc5:0:0:0:55b:fcc5
2001:0:5ef5:79fb:286d:1b0b:4d3c:1ec2
fe80:0:0:0:286d:1b0b:4d3c:1ec2%13
fe80:0:0:0:200:5efe:55b:fcc5%15
5.91.252.197
-------------------------------------------------------------------

Was sind das für Rückgabe werte?

Gruss TFT
 
Also für die
ersten Gehversuche in OOP und JAVA
nicht übel... ich hab meinerzeit nicht gleich mit URL und Exceptions um mich geworfen... und schon gleich gar nicht mit NetwortkInterface u.ä.

Wie auch immer... wenn man nicht weiß, was "false" ist, sollte man die Frage
Bin Anfänger ... das Thema auch ?
mit "NEIN" beantworten

Im Übrigen: ja, das sind IP6-Darstellungen (zumindest das Meiste davon).
 
Hallo,

na ja .... Anfänger in JAVA und OOP bin ich schon. Ich Code halt in anderen Sprachen schon seid 20 Jahren. Hauptsächlich geht es mir um diese Ausgabe.

fe80:0:0:0:9887:9457:439c:b7fa%10

Die verschiedenen Abschnitte sind die Listen der Localen IP Adressen über verschiedene Wege ermittelt. Die entsprechenden Codes habe ich aus den Internet und verstehe schon was sie machen. Aber der Rückgabe wert bei "addr.getHostAddress() = fe80:0:0:0:286d:1b0b:4d3c:1ec2%13" scheint aufgrund des Schemas eine bedeutung zu haben .... ich weis nur nicht welche.

Gruss TFT
 
Hallo,

soweit so gut .... IP v6 , aber wieso habe ich ausser der Roter IP (10.0.0.8) und der Hamaschie IP soviele v6 IP Adressen in der Liste.

Gruss TFT
 
Hallo,

soweit so gut .... IP v6 , aber wieso habe ich ausser der Roter IP (10.0.0.8) und der Hamaschie IP soviele v6 IP Adressen in der Liste.

Gruss TFT

Da, sofern möglich, der PC alle Verbindungen über IPv6 versucht aufzubauen....

Nur Hamachi (arbeitet mit IPv4 und dein Router[der wahrscheinlich so konfiguriert ist]wohl auch)
 
TFT hat gesagt.:
ich muss doch jetzt nicht alles auf IPv6 umbauen? Gibt es eine MEthode um die IPv6 von der IPv4 zu unterscheiden?

Ob du das ändern musst, musst du wissen. Du kannst jedenfalls mittels
Code:
instanceof[/c] zwischen IPv4 ([JAPI]Inet4Address[/JAPI]) und IPv6 ([JAPI]Inet6Address[/JAPI]) unterscheiden:

[code=Java]
if (inetAddress instanceof Inet4Address) {
    // IPv4
} else if (inetAddress instanceof Inet6Address) {
    // IPv6
}
 

Zurück
Oben