Deaktivieren Sie die Netzwerkverbindung

8

Wie kann ich eine Netzwerkverbindung in Java vorübergehend deaktivieren?

    
Jony 03.02.2011, 23:53
quelle

6 Antworten

4

Ein ziemlich komplizierter, aber praktikabler Weg, dies zu tun, besteht darin, eine benutzerdefinierte Socket-Implementierungsfactory zu erstellen. Sie können es registrieren, indem Sie aufrufen Socket.setSocketImplFactory() .

Ihre benutzerdefinierte Factory muss dann benutzerdefinierte Socket-Implementierungen zurückgeben, die bei jedem Verbindungsversuch einfach ein IOException auslösen.

Beachten Sie, dass dies nur ausgehende Verbindungen stoppt. Wenn Sie Ihre Anwendung stoppen möchten, akzeptieren Sie auch einen ähnlichen Trick in ServerSocket s.

    
biziclop 04.02.2011 00:06
quelle
2

Würden diese funktionieren? Unter Windows:

%Vor%

Unter Linux (vorausgesetzt, die Netzwerkschnittstelle heißt eth0:

%Vor%     
Satyajit 04.02.2011 00:04
quelle
1

Leider ist das Deaktivieren einer Netzwerkverbindung betriebssystemspezifisch, und mir sind keine Standard-Java-APIs für den Zugriff auf diese Betriebssystemfunktionen bekannt. Sie müssten wahrscheinlich einige Betriebssystem-spezifische Codierung, z. über JNI oder Ausführen von externen Programmen für jedes Betriebssystem, das Sie unterstützen möchten. Das Java-Programm müsste auch mit den richtigen Rechten aufgerufen werden, um sich mit den Netzwerkschnittstellen herumschlagen zu können.

    
Bert F 03.02.2011 23:59
quelle
1

(Angenommen, dies ist unter Windows, Vista oder höher)

Sie können eine Schnittstelle über WMI deaktivieren kann durch eine Brücke wie JACOB erreicht werden.

    
finnw 04.02.2011 00:46
quelle
1

Sniffy ermöglicht Ihnen ausgehende Netzwerke zu blockieren Verbindungen in Ihren Java-Anwendungen - es wird ein ConnectException geworfen, wenn Sie versuchen, eine neue Verbindung zu einem eingeschränkten Host herzustellen.

Fügen Sie einfach -javaagent:sniffy.jar=5559 zu Ihren JVM-Argumenten hinzu und verweisen Sie Ihren Browser auf localhost:5559 - es öffnet eine Webseite mit allen erkannten Verbindungen zu nachgelagerten Systemen und Steuerelementen, um bestimmte Verbindungen zu deaktivieren.

Wenn Ihre Anwendung webbasiert ist, können Sie sie sogar direkt über Ihre im Browser geöffnete Anwendung ausführen. Eine Demo finden Sie hier: Ссылка

Klicke auf ein Widget in der unteren rechten Ecke, wähle Network Connections tab, deaktiviere und verbinde dich mit localhost:8967 (Datenbank) und lade eine Seite neu, um sie in Aktion zu sehen.

Disclaimer: Ich bin der Autor von Sniffy

    
bedrin 27.03.2017 21:43
quelle
0

Sie können alle Schnittstellen mit wmic path win32_networkadapter deaktivieren, wobei PhysicalAdapter = True call disable

ist     
Ric 04.10.2015 06:24
quelle

Tags und Links