# IP Auslesen



## precoc (17. Okt 2012)

Ich habe eine Socket Verbindung über einen Server und möchte dort alle/alle einzelnen mit diesem verbundenen IPs auslesen. Ich hab da auch schon was gefunden, bloß sagt er mir zum ausgeben braucht er einen String und der Rückgabewert der Methode getInetAdress ist InetAdress(Datentyp).


```
this.contentPaket.getInetAddress()
```

Kriege ich irgendwie den Datentyp InetAdress umgewandelt das ich ihn als String ausgeben kann?

Per PrtintLn kann ich den Datentyp ausgeben, ich möchte den Rückgabewert aber in einer txt Datei speichern, und dazu brauche ich nen String.


----------



## Bernd Hohmann (17. Okt 2012)

.getHostAddress() von InetAddress

Ohne jetzt wirklich verstanden zu haben was Du da machst.

Bernd


----------



## troll (18. Okt 2012)

grundsätzlich erben alle klassen Object.toString() ... ergo kann man auch jedes objekt als string ausgeben ...
ob allerdings toString() sinnvoll überschrieben wurde und man mit dem output was anfangen kann hängt von der jeweiligen klasse ab ...
grundsätzlich gilt aber das der compiler in der lage ist automatisch toString() ranzuhängen falls ein objekt in irgendeinen einen stream geschrieben werden soll (ausnahme bildet hier write(byte[]) ... da muss man leider selbst toString().getBytes() dranhängen ... das schafft der compiler einfach nicht)


----------



## Spacerat (18. Okt 2012)

@troll: Die einzig richtige Aussage bei dir ist das allgemeine "<Object>.toString()". Die einzigen Streams, die automatisch in String wandeln sind Klassen wie z.B. der PrintSream und das macht nicht der Kompiler, sondern die Methoden wie z.B. "<PrintStream>.print(Object obj)".

```
/**
     * Prints an object.  The string produced by the <code>{@link
     * java.lang.String#valueOf(Object)}</code> method is translated into bytes
     * according to the platform's default character encoding, and these bytes
     * are written in exactly the manner of the
     * <code>{@link #write(int)}</code> method.
     *
     * @param      obj   The <code>Object</code> to be printed
     * @see        java.lang.Object#toString()
     */
    public void print(Object obj) {
        write(String.valueOf(obj));
    }
```
"String.valueOf(obj)" wird verwendet, weil dort dann auch gegen "null" geprüft wird.

@TO: InetAddress implementiert besagte "toString()"-Methode afaik korrekt. Die kannst du also verwenden. Für die Ausgabe in einem PrintStream kannst du dir das allerdings auch sparen und InetAddress direkt übergeben.


----------



## precoc (18. Okt 2012)

klappt jetzt alles ..  Danke ..


----------

