wie finde ich die ip adresse vom client heraus?

Status
Nicht offen für weitere Antworten.
S

Search

Gast
hallo,

habe nun schon eine weile das internet nach einer lösung abgesucht bin jedoch nicht wirklich fündig geworden. wie kann ich die ip adresse von einem client herausfinden? der client connected über sockets auf den server. mit einem serverSocket.accept() wird er vom serve angenommen. wie finde ich jedoch nun die ip adresse des clients heraus. bei allem was ich bisher probiert habe, bekam ich nur die ip adresse des servers heraus. hoffe mir kann jemand helfen. hier noch einen code ausschnitt:

Code:
if (userConnection == null) userConnection = new Hashtable (20, 10);
			
ServerSocket serverSocket = new ServerSocket(8051);
Socket socket = null;
			
System.out.println("Server waiting for client on port " + serverSocket.getLocalPort());
			
boolean flag = true;

while(flag) 
{
        socket = serverSocket.accept();	
							 
	String IP = socket.getLocalSocketAddress().toString();
	int Port = socket.getPort();
	System.out.println("New connection accepted" + IP);

danke und gruss
 
G

Guest

Gast
Schon versucht?
Code:
socket.getRemoteSocketAddress()
 
S

Search

Gast
danke für die antwort... hab ich jedoch auch schon probiert... geht auch nicht... frage mich langsam ob das überhaupt geht... dachte ich hätte sowas schon gsehen... finde es jedoch nicht mehr... sonst jemand noch nen vorschlag?

danke und gruss
 

Bleiglanz

Gesperrter Benutzer
warum schaust du nicht in die API?
java.net.Socket

getInetAddress

public InetAddress getInetAddress()

Returns the address to which the socket is connected.

Returns:
the remote IP address to which this socket is connected, or null if the socket is not connected.
 
S

Search

Gast
hab ich ja... alles schon probiert... bekomme jedoch immer meine ip... also das ganz sieht folgendermassen aus... den server (also das servlet) lasse ich auf meine maschine laufen... mein kollege connected dann über meine ip auf den server (also http://meinIP/seite.jsp)... im socket = serverSocket.accept() sollte doch nun nicht meine ip stehen, oder? oder verstehe ich da etwas komplett falsch? wenn ja, wie bekomme ich die ip dann heraus von einem client?

danke und gruss
 

moik

Mitglied
kann es sein dass du .jsp, servlets und server durcheinanderbringst?

deswegen habe ich deine architektur nicht wirklich verstanden. dass du immer die ip-adresse deines rechners bekommst, riecht doch schwer danach, das dein lokaler rechner als client auftritt (über webserver).
 

Bleiglanz

Gesperrter Benutzer
wenn dein Kollege eine jsp auf einem auf deinem Rechner laufenden Server aufruft und diese jsp dann im Code einen Socket zu einem ebenfalls auf deinem Rechner laufendem ServerSocket aufbaut, dann ist natürlich dein lokaler Rechner der Remote-Endpunkt!

Oder hast du ein Applet im Einsatz?

du kannst ja in der JSP anfangen: schau mal in die API vom request
getRemoteAddr

public String getRemoteAddr()

Returns the Internet Protocol (IP) address of the client or last proxy that sent the request. For HTTP servlets, same as the value of the CGI variable REMOTE_ADDR.

Returns:
a String containing the IP address of the client that sent the request

getRemoteHost

public String getRemoteHost()

Returns the fully qualified name of the client or the last proxy that sent the request. If the engine cannot or chooses not to resolve the hostname (to improve performance), this method returns the dotted-string form of the IP address. For HTTP servlets, same as the value of the CGI variable REMOTE_HOST.

Returns:
a String containing the fully qualified name of the client
 
S

Search

Gast
hmm... ja bei mir starte ich den server (tomcat) und das servlet (über den browser)... es läuft in dem sinn beides lokal bei mir... das servlet öffnet einen serverServer socket auf welchen ich vom client her connecte. hab gedacht, dass wenn ichs wie folgt mache die client informationen im socket stehen:

Code:
socket = null;
while(true) {
    socket = serverSocket.accept()

usw.

aber dem ist wohl nicht so. muss ich dann wohl anders lösen.

danke für eure antworte, muss das nochmals genauer anschauen.

gruss
 
S

Search

Gast
noch was... macht es denn einen unterschied ob ich von einem applet oder einem jsp auf den server connecte?

gruss
 

Bleiglanz

Gesperrter Benutzer
ja, weil beim

applet ist der "client" ja der entfernte Rechner, auf dem ein Browser läuft und in dessen VM der Socket aufgebaut wird

und beim

jsp=servlet-engine=tomcat/jetty ist der Rechner, auf dem die VM läuft, in der die Servlet-Engine läuft, der "client"

im zweiten fall kannst du also nicht so ohne weiteres feststellen, woher der "remote" Socket kommt (ausser über den HTTP Request)
 
S

Search

Gast
vielen dank für deine antworten. luechtet irgendwie ein was du gesagt hast :) habs jetzt über den request gelöst. das funkioniert nun auch. habe nun jedoch noch ne frage. um auf beide seiten kommunzieren zu können (server-client, client-server) muss ich danach vom server auf den client connecten. gibt es irgendwie die möglichkeit diese sockets zu speichern? habs mit nem hashtable versucht. key username, value socket, wenn ich das socket dann jedoch auslese ist es geschlossen. warum das? und besteht dann die möglichkeit einen reconnect zu machen? hab da in der api nix zu gefunden.

danke und gruss
 

Bleiglanz

Gesperrter Benutzer
Nein, der Socket ist total transient, er lebt nur, wenn tatsächlich eine TCP Verbindung realisiert ist und auf beiden Hosts die entsprechende Software läuft.

So wie du das sizzierst, gehts sicher nicht: auf dem Client gibts ja keinen ServerSocket, der auf eingehende Verbindungen wartet. Den musst du dir selbst schreiben und den Reconnect dann manuell durchführen

Bei deiner JSP/Servlet Lösung unmöglich, weil ein HTTP Request sehr kurz ist und es keinen Sinn hat auf etwas zu "lauschen", wenn der Sepp seinen Browser längst zugemacht hat...
 
S

Search

Gast
ok... dann muss ich wohl auf dem client ein applet machen welches einen listener öffnet auf welchen der server nachher connecten kann. wenn ich nun also mit einem applet auf den server connecte bleibt dann der socket offen? oder muss ich bei jedem zugriff den socket wieder öffnen? und kann ich einem applet parameter mitgeben für die connection?

gruss
 

Bleiglanz

Gesperrter Benutzer
nein bleibt offen (Applet läuft ja als Thread), Parameter sind natürlich eine gute Idee :)

timeout Probleme beachten

BrowserFensterSchliessenProblem beachten

Security beachten (evtl. signiertes Applet nötig)
 
S

Search

Gast
ok das ganze läuft nun mal so einigermassen... hab nun ein signiertes applet "gebaut" welches eine connection auf den server macht... über die ip des client connected der server auf den client... dieses socket wird in einer hashmap gespeichert..das problem ist nun jedoch das beim herauslesen das socket geschlossen ist... muss ich da nun jedes mal einen reconnect machen? wenn ja, wie? und wenn nein, was mache ich falsch oder wie gehts anders?

danke und gruss
 

Bleiglanz

Gesperrter Benutzer
wozu die hashmap?

wo liegt die: am applet oder am server?

versuchst du doch nicht etwa, die hashmap übers kabel zu schicken?

warum nicht als member-Variable in der applet-classe (wenn du sie in der init-Methode erzeugst)?
 
S

Search

Gast
da ich ja mehrere clients habe welche auf den server connecten muss ich die ja irgendwie speichern... mache dies in einer hashmap welche auf dem server liegt...
also die hashmap wird wie folgt erzeugt:

Code:
Hashtable userConnection = null;
	
	/** @modelguid {CEA53053-5F31-463A-A763-681D58882310} */
	public void init() throws ServletException
	{
		super.init(); 
	
		try 
		{
			// initialize Hastable if it is not yet initialized
			if (userConnection == null) userConnection = new Hashtable (20, 10);
			
			ServerSocket serverSocket = new ServerSocket(8051);
			Socket socket = null;

müsste so doch eigentlich gehen..


danke für deine hilfe, gruss


ps: hab zu dem thema auch noch einen neuen thread aufgemacht...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Ich finde den Fehler nicht... Netzwerkprogrammierung 2
L NullPointerException...finde den Fehler nicht Netzwerkprogrammierung 10
E Custom E Mail Adresse mithilfe Serversocket oder ähnliches Netzwerkprogrammierung 21
P IP-Adresse von Drahtlos-LAN-Adapter WLAN Netzwerkprogrammierung 1
M Fritzbox Mac Adresse Hinzufügen Netzwerkprogrammierung 2
Java_RY Die IP-Adresse des Eigenen Hostes ausgeben Netzwerkprogrammierung 4
O HTTP IP Adresse verschleiern Netzwerkprogrammierung 19
O HTTP IP Adresse verschleiern Netzwerkprogrammierung 5
O Ip Adresse verschleiern Netzwerkprogrammierung 3
M Socket IP-Adresse Netzwerkprogrammierung 8
N Multicast Adresse herausfinden des PCs Netzwerkprogrammierung 11
G ServerSocket.accept() überschreibt IP-Adresse Netzwerkprogrammierung 4
H Eine Mac-Adresse übers Internet ermitteln Netzwerkprogrammierung 2
P IP-Adresse per Hand einstellen Netzwerkprogrammierung 11
Kr0e Netty3 + Localhost Adresse, Durchsatzdrosselung ? Netzwerkprogrammierung 6
C Mac-Adresse des Systems Netzwerkprogrammierung 2
B Globale IP-Adresse auslesen - Java Applet Netzwerkprogrammierung 2
S Port auf einer bestimmten IP-Adresse auslesen? Netzwerkprogrammierung 6
B Lokale IP Adresse bestimmen Netzwerkprogrammierung 12
G IP Adresse vergeben Netzwerkprogrammierung 18
T Mac Adresse über Socket Verbindung abfragen? Netzwerkprogrammierung 9
M Bestimmung der Netzwerkklasse mittels IP-Adresse Netzwerkprogrammierung 3
T IP Adresse mit Hilfe der MAC Adresse ermitteln Netzwerkprogrammierung 3
W Bestimmt IP Adresse verwenden wenn man mehrere hat Netzwerkprogrammierung 5
C MAC Adresse Netzwerkprogrammierung 5
G Eigene IP-Adresse hinter Router ermitteln Netzwerkprogrammierung 1
zilti IP-Adresse Netzwerkprogrammierung 10
J Prüfen, ob IP-Adresse gültig ist Netzwerkprogrammierung 5
J Socket - Remote/Client Mac-Adresse? Netzwerkprogrammierung 3
C IP adresse anhand einer domain adresse auslesen / ermitteln Netzwerkprogrammierung 3
F IP-Adresse auslesen Netzwerkprogrammierung 7
M Eigene IP-Adresse Netzwerkprogrammierung 37
O IP adresse ermitteln Netzwerkprogrammierung 11
K IP Adresse erhöhen Netzwerkprogrammierung 4
Z Physikalische Adresse der Netzwerkkarte Netzwerkprogrammierung 4
I IP Adresse des Clients einer Socket Verbindung Netzwerkprogrammierung 2
bernd IP Adresse Netzwerkprogrammierung 13
D DynDNS-Adresse ändert sich während Server pollt Netzwerkprogrammierung 2
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
B Axis2 Webservice mit Client Zertifikat Authentifizierung Netzwerkprogrammierung 3
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
T Jetty mit Client-Zertifikat nur bei spezifischer URL Netzwerkprogrammierung 1
J Einlesen von Servernachrichten von TCP-Client Netzwerkprogrammierung 17
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
T Client zu Client Kommunikation Netzwerkprogrammierung 2
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
ruutaiokwu ständig "sender address rejected: improper use of smtp" bei smtp-client Netzwerkprogrammierung 4
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Chatserver/-client - Code stoppt bei readUTF() Netzwerkprogrammierung 7
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
L Zugriffprobleme Client - Webservice AspenTechnology Netzwerkprogrammierung 0
A Client Client Übertragung Netzwerkprogrammierung 12
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
K Socket Netty Client wirft Fehler! Netzwerkprogrammierung 3
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
U Socket Client mit hash authentifizieren Netzwerkprogrammierung 3
F HTTP HTTP Rest Client mit TLS1.2 und selbst signiertem Zertifikat Netzwerkprogrammierung 2
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
J Client - Serversocket Netzwerkprogrammierung 1
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
N Fragen zu Sockets Client Netzwerkprogrammierung 3
F Extasys TCp Client extends Funktion Netzwerkprogrammierung 0
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
O Client zwischen XML und JSON auswählen lassen Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
A Socket Wie ein einfacher Multithreads Service mit Telnet als Client mit Observable/Observer gelöst.... Netzwerkprogrammierung 0
K C# Server - Android Client Netzwerkprogrammierung 0
T Application Client NullPointerExc Netzwerkprogrammierung 7
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
H HTTP REST Jersey - PUT-Beispiel von Client senden Netzwerkprogrammierung 0
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben