Làm cách nào để tạm thời vô hiệu hóa kết nối mạng trong Java?Tắt kết nối mạng
Trả lời
Thật không may, việc vô hiệu hóa kết nối mạng là hệ điều hành cụ thể và tôi không biết bất kỳ API Java chuẩn nào để truy cập các tính năng OS đó. Bạn có thể phải thực hiện một số mã hóa dành riêng cho hệ điều hành, ví dụ: thông qua JNI hoặc thực hiện các chương trình bên ngoài, cho mỗi hệ điều hành bạn định hỗ trợ. Chương trình Java cũng sẽ cần phải được gọi với các đặc quyền thích hợp để được phép gây rối với các giao diện mạng.
Các công việc này có hoạt động không? Trên cửa sổ:
Runtime.getRuntime().exec ("ipconfig/release");
Trên Linux (giả sử các giao diện mạng được gọi là eth0:.
Runtime.getRuntime().exec ("ifconfig eth0 down");
tôi sử dụng phương pháp này trên một ứng dụng mà tôi chỉ phát hành kết nối cho tất cả kết nối không dây.Và sau đó gia hạn sau khi ứng dụng của tôi được thực hiện. Tôi đã sử dụng trang này làm tài liệu tham khảo: http://compnetworking.about.com/od/workingwithipaddresses/a/ipconfig.htm –
Một cách khá phức tạp nhưng khả thi để làm điều này là để tạo ra một nhà máy thực hiện ổ cắm tùy chỉnh Bạn có thể đăng ký bằng cách gọi Socket.setSocketImplFactory()
.
Nhà máy tùy chỉnh của bạn sau đó sẽ phải trả lại các triển khai ổ cắm tùy chỉnh mà chỉ cần ném IOException
vào mọi lần kết nối.
Lưu ý rằng điều này chỉ dừng các kết nối gửi đi, nếu bạn muốn dừng ứng dụng chấp nhận các kết nối đến, bạn sẽ phải chơi một mẹo tương tự trên ServerSocket
s.
Tôi đã triển khai thư viện để thử nghiệm khả năng chịu lỗi bằng cách sử dụng phương pháp này với SocketImplFactory - thực sự là khả thi ! http://stackoverflow.com/a/43056981/504452 – bedrin
bạn có thể vô hiệu hóa tất cả các giao diện sử dụng wmic đường win32_networkadapter
nơi PhysicalAdapter = True
gọi vô hiệu hóa
Sniffy cho phép bạn block outgoing network connections trong các ứng dụng Java của bạn - nó sẽ ném một ConnectException
bất cứ khi nào bạn cố gắng thiết lập một kết nối mới để lưu trữ hạn chế.
Chỉ cần thêm -javaagent:sniffy.jar=5559
vào đối số JVM và trỏ trình duyệt của bạn đến localhost:5559
- nó sẽ mở một trang web với tất cả các kết nối được phát hiện đến hệ thống hạ lưu và điều khiển để tắt một số kết nối nhất định.
Nếu ứng dụng của bạn được dựa trên web, bạn thậm chí có thể làm điều đó trực tiếp từ ứng dụng của bạn mở trong trình duyệt - xem một bản demo ở đây: http://demo.sniffy.io/owners?lastName=
Nhấn vào một widget ở góc dưới bên phải, chọn tab Network Connections
, tắt và kết nối với localhost:8967
(cơ sở dữ liệu) và tải lại trang để xem nó hoạt động.
Disclaimer: Tôi là tác giả của có vẻ khinh miệt
- 1. Cách tắt/bật kết nối mạng trong C#
- 2. Mạng Java "Kết nối bị từ chối: Kết nối"
- 3. Kết nối lại ổ đĩa mạng đã ngắt kết nối
- 4. Kết nối mạng TCPIP với C#
- 5. Kết nối mạng gói trong Android
- 6. FileSystemWatcher và ngắt kết nối mạng?
- 7. Kết nối mạng WiFi qua ứng dụng
- 8. Java Kiểm tra nhanh kết nối mạng
- 9. Kết nối mạng cơ bản với Pygame
- 10. Android :: Cách ngắt kết nối khỏi mạng wifi?
- 11. Cách tắt tự động kết nối WIFI trong Android
- 12. Python: chặn kết nối mạng cho mục đích thử nghiệm?
- 13. Kết nối SVN + SSH đưa ra lỗi 210002, kết nối mạng đóng bất ngờ
- 14. Làm mới iAd sau khi ngắt kết nối mạng
- 15. Virtualbox guest OS - Kết nối với mạng nội bộ nhưng không kết nối Internet
- 16. Phát hiện trạng thái mạng (kết nối - ngắt kết nối) trong C#
- 17. Quản lý kết nối mạng không dây trong C#
- 18. Sao chép tập tin qua kết nối mạng gián đoạn
- 19. Làm cách nào để kiểm tra kết nối mạng?
- 20. Nhiều kết nối mạng đồng thời - Máy chủ Telnet, Python
- 21. Cách quét cổng chờ kết nối trên mạng
- 22. Reconnect socat kết nối sau khi thất bại mạng
- 23. Kết nối mạng XNA trên các cửa sổ
- 24. Đóng tất cả các kết nối mạng cơ bản
- 25. Lỗi mạng khi kết nối với máy chủ sql
- 26. . Ứng dụng mạng không thể kết nối với DB2 DataBase
- 27. Phát hiện kết nối mạng bị hạn chế trong Android?
- 28. Kết nối mạng ảo của máy ảo Azure
- 29. nodejs kết nối kết nối net
- 30. chrome: tắt kết nối internet hoặc làm việc ngoại tuyến
kéo cáp ra .... –
Yep, tôi đồng ý với Mitch ... cách dễ nhất bạn sẽ tìm thấy là chỉ cần kéo cáp , hoặc vô hiệu hóa bộ điều hợp mạng –