الحصول على معلومات عنوان المضيف
في Java، نستخدم فئة InetAddress لتمثيل عنوان الشبكة الهدف، بما في ذلك اسم المضيف ومعلومات العنوان الرقمي، ومثيلات InetAddress غير قابلة للتغيير، ويشير كل مثيل دائمًا إلى عنوان ما. تحتوي فئة InetAddress على فئتين فرعيتين، تتوافقان مع إصدارين من عناوين IP:
انسخ رمز الكود كما يلي:
Inet4Address
Inet6Address
يمكننا أن نعرف من الملاحظات السابقة: يتم تعيين عناوين IP فعليًا للاتصال بين المضيف والشبكة، بدلاً من المضيف نفسه. توفر فئة NetworkInterface وظيفة الوصول إلى المعلومات على كافة واجهات المضيف. نستخدم أدناه برنامج مثال بسيط لمعرفة كيفية الحصول على معلومات عنوان مضيف الشبكة:
انسخ رمز الكود كما يلي:
importjava.net.*;
importjava.util.Enumeration;
publicclassInetAddressExample{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
يحاول{
// احصل على قائمة واجهة الشبكة المضيفة
Enumeration<NetworkInterface>interfaceList=NetworkInterface
.getNetworkInterfaces();
//تحقق مما إذا كانت قائمة الواجهة فارغة. حتى إذا لم يكن لدى المضيف أي اتصالات شبكة أخرى، فيجب أن تكون واجهة الاسترجاع (الاسترجاع).
إذا (interfaceList==null){
System.out.println("--لم يتم العثور على واجهة--");
}آخر{
بينما(interfaceList.hasMoreElements()){
// احصل على عنوان كل واجهة واطبعه
NetworkInterfaceiface=interfaceList.nextElement();
//اسم واجهة الطباعة
System.out.println("Interface"+iface.getName()+";");
// احصل على العنوان المرتبط بالواجهة
Enumeration<InetAddress>addressList=iface
.getInetAddresses();
// سواء كان فارغًا
إذا (!addressList.hasMoreElements()){
System.out.println("/t(لا يوجد عنوان متعلق بهذه الواجهة)");
}
// تكرار القائمة، اطبع كل عنوان
بينما(addressList.hasMoreElements()){
InetAddressaddress=addressList.nextElement();
System.out
.طباعة("/العنوان"
+ ((عنوان مثيل Inet4Address؟"(الإصدار 4)"
: عنوان مثيل Inet6Address؟"v6"
:"(؟)")));
System.out.println(":":"+address.getHostAddress());
}
}
}
}قبض على(SocketException){
System.out.println("الحصول على خطأ في واجهة الشبكة:"+se.getMessage());
}
// احصل على اسم المضيف والعنوان المطابق لكل معلمة تم إدخالها من سطر الأوامر، وكرر القائمة واطبع
ل(سلسلة المضيف:الوسائط){
يحاول{
System.out.println(host+":);
InetAddress[]addressList=InetAddress.getAllByName(host);
ل(InetAddressaddress:addressList){
System.out.println("/t"+address.getHostName()+"/"
+address.getHostAddress());
}
}قبض على(UnknownHostExceptione){
System.out.println("/tغير قادر على العثور على العنوان:"+host);
}
}
}
}