Tôi cần thông tin cấu hình Mạng trong ứng dụng của tôi nhiều hơn số java.net.NetworkInterface
và java.net.InetAddress
cung cấp. Tôi muốn bao gồm các thông tin như Subnet, Gateway, và các máy chủ DNS, nhưng mã cần phải được di động cho cả hai nền tảng Windows và Linux.Nhận thông tin mạng trong Java trên nền tảng Windows và Linux
Tôi đã xem xét thực hiện việc này bằng cách thực hiện Runtime.getRuntime().exec("ipconfig")
cho Windows và Runtime.getRuntime().exec("ifconfig")
cho Linux và phân tích kết quả. Có lẽ có một cách tốt hơn để làm điều này hoặc một dự án mã nguồn mở mà tôi có thể sử dụng.
Cảm ơn trước cho bất kỳ ý tưởng nào có thể hướng tôi đi đúng hướng
gọi ifconfig và ipconfig phá vỡ việc sử dụng tính di động. Bạn có thể đăng những gì mã bạn hiện đang có? – Woot4Moo
Tôi đã thực hiện một phương pháp nhà máy để gọi vào các triển khai riêng biệt cho từng hệ điều hành. Đối với các cửa sổ, tôi đang gọi 'ipconfig/all' và phân tích kết quả. Đối với Linux, tôi đang gọi 'ifconfig', 'route -n' và 'cat /etc/resolv.conf'. –
Ngoài ra, cài đặt mặc định của một số bản phân phối Linux không bao gồm/sbin trong đường dẫn, do đó, việc gọi có thể không thành công tùy thuộc vào người dùng –