Rumah > Java > javaTutorial > Bagaimana Mendapatkan Alamat IP yang Betul di Java untuk Sistem Teragih?

Bagaimana Mendapatkan Alamat IP yang Betul di Java untuk Sistem Teragih?

Patricia Arquette
Lepaskan: 2024-12-14 04:17:09
asal
889 orang telah melayarinya

How to Reliably Get the Correct IP Address in Java for Distributed Systems?

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:

  1. Utamakan alamat IP PPP jika ada.
  2. Jika PPP tidak tersedia, gunakan alamat IP LAN.
  3. Sebagai sandaran, daftar 127.0.0.1 jika nod diandaikan berada pada kedudukan yang sama komputer.

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());
    }
}
Salin selepas log masuk

Membezakan Alamat IP

Sebaik sahaja anda mempunyai senarai daripada alamat IP, adalah penting untuk membezakan antara jenis IP yang berlainan alamat:

  • Loopback: 127.xxx.xxx.xxx
  • Swasta (Tapak Setempat): 192.168.xxx.xxx, 10.xxx.xxx.xxx, 172.16.xxx.xxx hingga 172.31.xxx.xxx
  • Pautan Setempat: 169.254.xxx.xxx
  • Multicast: 224.xxx.xxx.xxx ke 239.xxx.xxx.xxx
  • Siaran: 255.255.255.255
  • Public Point-to-Point: Apa-apa sahaja di luar julat di atas

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan