Mendapatkan Alamat IP Mesin Semasa Menggunakan Java
Apabila membangunkan sistem teragih dengan berbilang nod berjalan pada sistem atau port yang berbeza, ia menjadi penting untuk mendapatkan alamat IP mesin tempatan. Walau bagaimanapun, menggunakan Inet4Address.getLocalHost().getHostAddress() atau InetAddress.getLocalHost().getHostAddress() mungkin mengembalikan alamat IP yang salah disebabkan oleh berbilang antara muka rangkaian dan alamat IP yang dikaitkan dengan setiap antara muka.
Pertimbangan untuk Pemilihan Alamat IP
Dalam senario ini, nod mesti mendaftarkan alamat IPnya ke nod bootstrap. Pemilihan alamat IP hendaklah mematuhi keutamaan berikut:
Menggunakan Antara Muka Rangkaian
Kaedah NetworkInterface.getNetworkInterfaces() menyediakan senarai komprehensif antara muka rangkaian pada mesin setempat. Setiap antara muka rangkaian boleh mempunyai berbilang alamat IP. Untuk mendapatkan semua alamat IP, ulangi antara muka rangkaian dan alamat IP yang berkaitan menggunakan kod berikut:
Enumeration e = NetworkInterface.getNetworkInterfaces(); while (e.hasMoreElements()) { NetworkInterface n = (NetworkInterface) e.nextElement(); Enumeration ee = n.getInetAddresses(); while (ee.hasMoreElements()) { InetAddress i = (InetAddress) ee.nextElement(); System.out.println(i.getHostAddress()); } }
Membezakan Alamat IP
Sebaik sahaja anda mempunyai senarai daripada alamat IP, adalah penting untuk membezakan antara jenis IP yang berlainan alamat:
Anda boleh menggunakan API InetAddress untuk semak jenis alamat IP tertentu mengikut keutamaan pilihan anda.
Kesimpulan
Dengan menggunakan NetworkInterface API dan mempertimbangkan jenis alamat IP, anda boleh mendapatkan alamat IP yang betul dengan berkesan nod anda dan daftarkannya dengan nod bootstrapping, memastikan komunikasi yang betul dalam sistem yang diedarkan.
Atas ialah kandungan terperinci Bagaimana Mendapatkan Alamat IP yang Betul di Java untuk Sistem Teragih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!