Wie ermittelt man eine eingehende Verbindung vom lokalen Rechner?

8

Ich habe einen SocketServer, der eingehende Verbindungen akzeptiert. Aus Sicherheitsgründen sollte ich nur lokale Verbindungen zulassen (Verbindungen von dem Rechner, auf dem der Server läuft).

Wie kann ich feststellen, ob eine eingehende Verbindung von einem anderen Computer stammt? Ist der folgende Code dafür sicher?

%Vor%

während fromThisMachine() methode wie folgt aussieht:

%Vor%

Danke, Mohsen

    
Mohsen 09.10.2009, 07:51
quelle

3 Antworten

7
___ qstntxt ___

Ich habe einen SocketServer, der eingehende Verbindungen akzeptiert. Aus Sicherheitsgründen sollte ich nur lokale Verbindungen zulassen (Verbindungen von dem Rechner, auf dem der Server läuft).

Wie kann ich feststellen, ob eine eingehende Verbindung von einem anderen Computer stammt? Ist der folgende Code dafür sicher?

%Vor%

während %code% methode wie folgt aussieht:

%Vor%

Danke, Mohsen

    
___ answer1542670 ___

Danke Skaffman. Der folgende Code funktionierte mit ein wenig Manipulation (Hartcodierung 127.0.0.1).

%Vor%

Wenn ich lokale Adresse von InetAddress.getLocalHost () lese, können andere Netzwerkbenutzer im selben Subnetz meinen Server immer noch sehen.

Mohsen.

    
___ answer542451 ___

Wenn Sie Verbindungen vom lokalen Host beschränken möchten, geben Sie dies beim Öffnen des ServerSockets an. Wenn Sie nur auf localhost hören, erhalten Sie nur Verbindungen von localhost.

%Vor%     
___ tag123networking ___ Für die meisten Programmierfragen verwenden Sie das [network-programming] -Tag. Nicht-programmierbare Netzwerkfragen sind nicht Thema und sollten stattdessen in Network Engineering, Super User oder Server Fault abgefragt werden. Dieses Tag eignet sich nur für Fragen zu speziellen Netzwerkanforderungen zur Unterstützung der Softwareentwicklung. ___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123networkprogramming ___ Programmierung zum Erstellen und Verwalten von Netzwerken sowie Hinzufügen von Netzwerkkonnektivität zu einem (Satz von) Programmen. ___ qstnhdr ___ Wie ermittelt man eine eingehende Verbindung vom lokalen Rechner? ___ tag123sockets ___ Ein Endpunkt eines bidirektionalen Interprozess-Kommunikationsflusses. Dies bezieht sich oft auf einen Prozessablauf über eine Netzwerkverbindung, ist jedoch keineswegs darauf beschränkt. Nicht zu verwechseln mit Websocket (einem Protokoll) oder anderen Abstraktionen (z. B. socket.io). ___ answer1544062 ___

InetAddress.getByName (null) gibt immer die Loopback-Adresse zurück. Siehe javadoc

%Vor%     
___
skaffman 09.10.2009, 07:59
quelle
11

InetAddress.getByName (null) gibt immer die Loopback-Adresse zurück. Siehe javadoc

%Vor%     
Alexander Pogrebnyak 09.10.2009 14:17
quelle
3

Danke Skaffman. Der folgende Code funktionierte mit ein wenig Manipulation (Hartcodierung 127.0.0.1).

%Vor%

Wenn ich lokale Adresse von InetAddress.getLocalHost () lese, können andere Netzwerkbenutzer im selben Subnetz meinen Server immer noch sehen.

Mohsen.

    
Mohsen 09.10.2009 08:57
quelle