IP ausgeben

na

Mitglied
Hi,

ich habe eine Anwendung die einen Server erstellt und eine andere die sich zu einem Server verbindet, wenn man dessen IP-Adresse eingibt. Die Server-Anwendung hat eine Funktion um die IP-Adresse des Servers auszugeben:
Java:
System.out.println(InetAddress.getLocalHost().getHostAddress());
Das funktioniert soweit auch alles.
Allerdings ist die IP-Addresse ja nur lokal gültig. Ist es irgendwie möglich eine IP auszugeben mit der man den Server auch über das Ineternet erreichen kann?

Danke schon mal im vorraus

jojo1234
 

turtle

Top Contributor
So richtig verstanden habe ich die Frage zwar nicht...

Ich gebe trotzdem meinen Senf dazu ;-)

Üblicherweise bekommst Du eine neue IP von Deinem Provider zugewiesen, wenn Du Dich anmeldest. Dieses erschwert den Betrieb eines Servers, da dieser ja über eine festen Namen erreicht werden sollte.

Dafür gibt es aber Dienste wie zum Beispiel DynDNS wo Du eine Domain einrichten kannst.

Diesen Wechsel der IP machen einige Router (z.B. FritzBox) bereits automatisch, ist aber auch sonst nicht schwer. Damit wird dem DynDNS mitgeteilt, dass Dein Rechner nun über eine andere IP erreicht werden kann. Benutzer "sehen" nur Deine globalen Domainnamen, der auf Deinen Server verweist.

Die Vergabe einer "globalen" IP/Domain ist normalerweise kostenfrei.
 

Bernd Hohmann

Top Contributor
ich habe eine Anwendung die einen Server erstellt und eine andere die sich zu einem Server verbindet, wenn man dessen IP-Adresse eingibt. Die Server-Anwendung hat eine Funktion um die IP-Adresse des Servers auszugeben:

Du hast einen Server, der sich mit einem anderen Server verbindet. Von welchem Server wilst Du welche Serveradresse herausfinden? Numeriere die mal durch, vielleicht hilfts mir.

Bernd
 

na

Mitglied
Also:
Das ganze soll ein Schachspiel werden, das 2 personen über internet miteinander spielen können.
Es gibt 2 Anwendungen. Einer startet Anwendung 1, die dann einen Server erstellt und dessen ip ausgibt.
Dann starten beide Anwendung 2 und geben die ip ein, und werden dann mit dem Server verbunden. Nach diesem Spiel wird der Server wieder geschlossen.
-> Es ist egal, dass sich die ip beim erneuten verbinden ändert.

Jetzt klarer?
 

Bernd Hohmann

Top Contributor
Ja, jetzt klarer. Der Server "Alice" liegt im Heimnetz, gewöhnlicherweise bei IPv4 hinter einem NAT Gateway. "Bob" will nun auf einen Dienst von Alice zugreifen.

Erstes Problem: man muss dem Router von Alice mitteilen, dass er den Server-Port entsprechend nach innen weiterleitet (Konfigurationssache).

Zweites Problem: Bob braucht die Public IP des Routers.

Dazu entweder einen Dienst wie dyndns.org nutzen (sofern der Router von Alice das unterstützt). Dann kann Bob zb. auf "na-chess.dyndns.org" zugreifen. Andere Variante ist ein Vermittlungsserver der kurz angesprochen wird - der kann dann die Remote-IP am Socket auslesen. Oder Du versuchst sowas wie Wie ist meine IP-Adresse? auszulesen.

Das erste Problem kann man mit einem Tunnelbohrer aushebeln, aber mit Java etwas problematisch.

Bernd
 

na

Mitglied
Habe ich das richtig verstanden, dass die einfachste Lösung wäre wieistmeineip.de auszulesen?
Reicht das allein schon?
Oder muss ich noch dann noch etwas anderes beachten?
 

homer65

Top Contributor
Muß es denn unbedingt eine IP sein?
Viele Router unterstützen Dynamisches DNS.
Damit wäre dein Server unter einem Namen erreichbar, der immer gleich wäre.
Mein PC Zuhause ist zum Beispiel unter ehm.homelinux.org zu erreichen.
 

Bernd Hohmann

Top Contributor
Muß es denn unbedingt eine IP sein?
Viele Router unterstützen Dynamisches DNS.

Dein Lösungsansatz hat den Nachteil, dass Alice diesen Dienst irgendwie bedienen muss - für ein kleines Schachspiel eventuell schon etwas zu aufwändig.

Mein Tip seit der Erfindung des fünfeckigen Rades ist immer noch, sich für sowas für kleines Geld einen Server oder VM irgendwo anzumieten und sich dort die entsprechenden Dienste zu installieren. Klar erfordert das eine gewisse Einarbeitung, aber ein Linux-Server ist wesentlich weniger ekliger zu bedienen als Java EE.

Bernd
 
J

JohannisderKaeufer

Gast
Mir ist keine Methode bekannt, um mit Java direkt die "global" IP zu bekommen.


Das hängt unter anderem auch daran, daß je nach Netzwerkkarte eine andere IP zugewiesen wird (lokale IP).
Im Heimnetz habe ich beispielsweise über WLan eine andere lokale IP als über Lan.

Das nächste ist der Router. Der bekommt eine ip von Aussen und zumindest meiner zeigt diese auch an. Der hat allerdings auch nur einen WAN-Port.

Als nächstes ist auch nicht immer sichergestellt, daß du von deinem Provider eine echte IP bekommst. Da kann es unter Umständen, besonders im Mobile-Bereich sein, daß dieser dir auch nur eine lokale IP zuweist mit der du dann hinter einer weiteren NAT sitzt.
 
T

troll

Gast
@TO
eigentlich ist die frage ziemlich sinnfrei

grund : wenn das ganze über TCP laufen soll muss der "hoster" auch port forwarding im router einstellen ... und eigentlich jeder router im home-bereich zeigt auf der seite "status" oder "info" die aktuelle public-ip an ...

ergo : zumindest beim ersten mal kann man schon direkt im router die notwendige info auslesen ...
für weitere spiele (wenn der port bereits weitergeleitet wurde) reicht es wenn der host einfach selbst mit seinem browser auf ne seite geht die dessen public-ip anzeigt (gibt ja genug) und diese einfach dem mitspieler über chat oder ähnliches mitteilt ...
da muss man sich nicht nicht die platte machen und irgendwas in seiner software entwickeln ...


eine andere möglichkeit wäre noch das bereits gelinkt UDP Hole Punching (ja, es gibt auch TCP Hole Punching, ist aber mit java so direkt ohne zusatz lib NICHT möglich) ... dafür ist zwar ein vermittlungsserver nötig, aber die notwendigen informationen kann man mit jedem free-hoster zusammenbekommen ...

oder man nutzt gleich einen freehoster mit webservice und eine datenbank ... dann braucht man sich über server und port-forwarding gar keine gedanken mehr machen (erfordert natürlich regelmäßiges polling)
 

na

Mitglied
wenn ich das richtig verstanden habe, wäre es am einfachsten, wenn ich einen Server miete und von dort die spiele hoste
 
T

troll

Gast
eine empfehlung nicht ... aber einen tipp : KEINEN vServer bei WebTropia ...
eigene kleinere Java-apps kann man zwar laufen lassen ... aber minecraft/bukkit läuft komischer weis schon nicht mehr ...
liegt laut google an der technik die genutzt wird um die vServer zu emulieren
 

faetzminator

Gesperrter Benutzer
Ich verstehe, dass man irgendwann (v)Server empfiehlt, aber warum in diesem Fall? Wenn jemand ein kleines P2P-Spiel aus Freude entwickelt, kann man das gut und gerne mit Port forward "von zu Hause aus" spielen...
 

TheDarkRose

Gesperrter Benutzer
Leute, gleich einen vServer zu empfehlen ist die schlechteste Idee überhaupt! Da braucht es schon tiefergehende adminerfahrungen, sonst ist die nächste spamschleuder im Netz.

Gesendet von meinem Nexus 7 mit Tapatalk 2
 

na

Mitglied
es ist zwar im Moment nur diese eine Anwendung, vermutlich kommt aber noch mehr dazu

und ich würde das ungerne von zu hause aus hosten
 

TheDarkRose

Gesperrter Benutzer
Dann solltest du auf eine managed Lösung zurückgreifen, denn ein ungesicherter Server kann schlimmstenfalls sogar rechtliche Konsequenzen haben.

Gesendet von meinem Nexus 7 mit Tapatalk 2
 

Bernd Hohmann

Top Contributor
hast du irgendwelche empfehlungen für einen Anbieter?
in welcher Preisklasse spielt das Ganze?

1&1 kleiner vServer, 9,99 EUR/Monat (oder noch billiger). Da kann man schon ordentlich was mit machen.

Eine Spamschleuder wird das übrigens erst, wenn man entsprechende Dienste unabgesichert anbietet - und dazu gehört schon mehr als einen Schachserver aufzusetzen.

Bernd
 

TheDarkRose

Gesperrter Benutzer
1&1 kleiner vServer, 9,99 EUR/Monat (oder noch billiger). Da kann man schon ordentlich was mit machen.

Eine Spamschleuder wird das übrigens erst, wenn man entsprechende Dienste unabgesichert anbietet - und dazu gehört schon mehr als einen Schachserver aufzusetzen.

Bernd

Nein, es reicht schon, ssh nicht richtig abzusichern

Gesendet von meinem Nexus 7 mit Tapatalk 2
 

Bernd Hohmann

Top Contributor
Nein, es reicht schon, ssh nicht richtig abzusichern

Sag ich doch: "Eine Spamschleuder wird das übrigens erst, wenn man entsprechende Dienste unabgesichert anbietet", ein SSH mit schwachem Password ohne ssh-key ist ein ungesicherter Dienst der die Installation einer Spamschleuder ermöglicht.

Oder wolltest Du gerade einem alten Jäger in die Flinte pissen und sagen "es regnet"? :)

Bernd
 
T

troll

Gast
also SSH sollte man grundsätzlich
-auf einem anderen port laufen lassen
-nur mit key-auth betreiben und password-auth deaktivieren
-so einrichten das root-login nicht gestattet

@TO
warum willst du irgendwas HOSTEN ? ich gehe mal davon aus das der server eh nur während des spiels läuft .. wenn nicht gespielt wird läuft der server also auch nicht (bzw brauch nicht laufen) ...
was du also mit "von zu hause aus hosten" meinst versteh ich nicht wirklich ... da es ja nur so lange "gehostet" wird wie der server läuft ... und das kann man, wenn es auf die partie beschränkt ist, auch wirklich von "zu hause aus" machen in dem man seinen router entsprechend einstellt ..

du machst dir das deutlich komplizierter als es sein muss ..


(liegt vielleicht daran das du keine erfahrung mit sehr alten klassikern hast die grundsätzlich nur über direkt-verbindungen liefen)
 
T

tuxedo

Gast
Hinzu kommt noch, dass die wenigsten lediglich SSH + ihren eigenen Dienst hosten. Meist kommt ja noch ein Webserver und noch anderes Zeugs wie FTP dazu. Und bereits beim Thema Webserver hat man schnell ein riesiges Scheunentor offen. Denn die meisten werden den mit PHP nutzen wollen.

Wer keine Ahnung von Linux hat und noch nie so eine Kiste auch nur ansatzweise administriert hat, sollte IMHO die Finger von einem (v)root lassen und wenn, dann auf einen Managed Server zurückreifen. Die sind dann halt auch etwas teurer. Ansonsten steht man quasi schon mit einem Bein im Knast. Rucki Zucki hat man über eine Lücke in einer PHP-Anwendung Fremd-Code auf dem System über den fleissig Filme aller Art "geshared" werden.

Aber mal davon abgesehen: Meine Hoster-Empfehlung: Hetzner.de

- Alex
 

na

Mitglied
allen schon mal vielen dank

ich werde mir das ganze noch mal durch den kopf gehen lassen

Es scheint mir, dass das zu einer Art Grundsatzdiskussion geworden ist: managed oder nicht :D
 

Ähnliche Java Themen

Neue Themen


Oben