فئة inetaddress
يتم استخدام فئة Inetaddress لتغليف عنوان IP الرقمي واسم المجال للعنوان الذي ناقشناه سابقًا.
أنت تتفاعل مع هذه الفئة من خلال اسم مضيف IP ، وهو أسهل وأسهل في الفهم من عنوان IP الخاص به.
يتم إخفاء رقم العنوان داخل فئة Inetaddress.
طريقة المصنع في فئة Inetaddress
فئة Inetaddress ليس لديها مُنشئ واضح. لإنشاء كائن inetaddress ، يجب استخدام طريقة المصنع المتاحة.
طريقة المصنع هي مجرد اتفاقية لطريقة ثابتة في فئة لإرجاع مثيل لتلك الفئة.
بالنسبة إلى inetaddress ، يمكن استخدام ثلاث طرق: getlocalhost () و getByName () و getAllbyName () لإنشاء مثيل inetaddress.
GetLocalhost () يعيد فقط كائن Inetaddress الذي يرمز إلى المضيف المحلي.
العنوان المحلي هو أيضًا مضيف محلي ، 127.0.0.1 ، وهذه العناوين الثلاثة هي نفسها.
تقوم طريقة getByName () بإرجاع inetaddress تم تمريرها إلى اسم المضيف الخاص بها.
إذا لم تتمكن هذه الطرق من حل أسماء المضيف ، فإنها ترفع استثناء غير معروف.
على الإنترنت ، من الشائع استخدام اسم واحد لتمثيل آلات متعددة.
تقوم طريقة GetAllbyName () المصنع بإرجاع مجموعة من فئة Inetaddresses التي تمثل جميع العناوين التي تحللها اسم خاص.
عندما لا يمكن أن يتحلل الاسم إلى عنوان واحد على الأقل ، فإنه سيثير استثناء غير معروف.
مثال البرنامج
inetaddressTest01
package com.example.network ؛ import java.net.inetaddress ؛ inetaddressTEST01 {public static void main ( /الإخراج: اسم الجهاز/عنوان IP // على سبيل المثال ، اسم المستخدم-10.4.16.131 // احصل على عنوان IP من خلال عنوان المجال = inetaddress.getbyname ("www.sohu.com") ؛ (العنوان) ؛ استخدم فئة Inetaddress لتحديد عناوين IP الخاصة
تنقسم عناوين IP إلى عناوين عادية وعناوين خاصة. معظم المقالات السابقة هي عناوين IP عادية.
1. طريقة isanylocaladdress
إرجاع TRUE عندما يكون عنوان IP عبارة عن عنوان Wildcard ، وإلا فإنه يعيد خطأ. يتيح استخدام عناوين Wildcard اتصالات العميل من أي واجهة شبكة لقبولها على مضيف الخادم. العنوان Wildcard لـ IPv4 هو 0.0.0.0. ::.
2. طريقة isloopbackaddress
إرجاع صحيح عندما يكون عنوان IP هو عنوان الاسترجاع ، وإلا فإن إرجاع FALSE.LOOPBACK يمثل عنوان IP للجهاز. يبلغ نطاق عنوان الاسترجاع من IPv4 127.0.0.0 ~ 127.255.255.2555. على سبيل المثال ، 127.1.2.3 و 127.0.200.200 هي عناوين الاسترجاع. عنوان الاسترجاع لـ IPv6 هو 0: 0: 0: 0: 0: 0: 0: 1 ، أو يمكن اختصاره على أنه :: 1. كما هو موضح في سطر الأوامر التالي:
Ping 127.200.200.200
نتائج التشغيل:
الرد من 127.0.0.1: بايت = 32 الوقت <1ms ttl = 128 (ملاحظة: 127.200.200.200 تحت Win7) الرد من 127.0.0.1: بايت = 32 الوقت <1ms ttl = 128Reply من 127.0.1: bytes = 32 time <1ms TTL = 128Reply من 127.0.0.1: Bytes = 32 الوقت <1ms TTL = 128Ping إحصائيات لـ 127.200.200.200: الحزم: إرسال = 4 ، وردت = 4 ، ضائع = 0 (0 ٪ خسارة) ، تقريبًا أوقات رحلة ذهابًا وإيابًا تقريبًا في المليون- الثواني: الحد الأدنى = 0 مللي ثانية ، الحد الأقصى = 0ms ، متوسط = 0 مللي ثانية
على الرغم من أن 127.255.255.255 هو أيضًا عنوان استرجاع ، فإن 127.255.255.255 لا يمكن تربيته تحت Windows. هذا لأن 127.255.255.255 هو عنوان بث.
ثالثا
Return True عندما يكون عنوان IP هو عنوان الاتصال المحلي (LinkLocalAddress) ، وإلا فإن نطاق عنوان الاتصال المحلي لـ IPv4 هو 169.254.0.0 ~ 169.254.255.255. يمكن أن تكون البتات قيمة تعسفية ، مثل FE88: و Fe80 :: ABCD :: كلها عناوين اتصال محلية.
رابعا
إرجاع صحيح عندما يكون عنوان IP هو العنوان المحلي للمنطقة (SiteLocalAddress) ، وإلا فإن عنوان العنوان الذي يرجع false.ipv4 مقسمة إلى ثلاثة أجزاء: 10.0.0.0 ~ 10.255.255.255 ، 172.16.0.0 ~ 172.31.255.255 ، 192.168.0.0 ~ 192 .168.
5. طريقة ismulticastaddress
إرجاع TRUE عندما يكون عنوان IP هو عنوان بث (البث المتعدد) ، وإلا فإنه يعيد خطأ. نطاق بث IPv4 هو 224.0.0.0 ~ 239.255.255.255.255. ستتم مناقشة تفاصيل عناوين البث في الفصول المستقبلية.
6. طريقة ISMCGLOBAL
إرجاع TRUE عندما يكون عنوان IP عبارة عن عنوان إذاعي عالمي ، وإلا فإنه يعيد عنوان البث العالمي. عنوان بث IPv4 هو عنوان بث عالمي باستثناء عنوان IP 224.0.0.0 والأول هو 239. البايت الأول في عنوان البث العالمي لـ IPv6 هو FF ، والبايت الثاني هو 0e ~ fe ، ويمكن أن تكون البايتات الأخرى أي قيمة ، مثل ffbe :: و ff0e :: جميعها عنوان البث العالمي.
7. طريقة Ismclinklocal
إرجاع TRUE عندما يكون عنوان IP هو عنوان البث الفرعي ، وإلا فإنه يعيد خطأ. نطاق إذاعة الشبكة الفرعية IPv4 هو 224.0.0.0 ~ 224.0.0.255. :: و FF02: ABCD :: كلها عناوين بث الشبكة الفرعية.
8. طريقة Ismcnodelocal
Return True عندما يكون عنوان IP هو عنوان البث المحلي ، وإلا فإنه يعيد خطأ. جميع عناوين البث IPv4 ليست عناوين بث واجهة محلية. البايت الأول لعنوان إذاعة الواجهة المحلية لـ IPv6 هو FF ، ومدى البايت الثاني هو 01 ~ F1 ، ويمكن أن تكون البايتات الأخرى أي قيمة ، مثل FFB1 :: و FF01: A123 :: جميعها واجهات محلية. عنوان البث.
9. طريقة Ismcorglocal
إرجاع ture عندما يكون عنوان IP هو عنوان البث على مستوى المؤسسة ، وإلا فإنه يعيد خطأ. أول بايت لعنوان البث على مستوى المنظمة لـ IPv4 هو 239 ، والبايت الثاني لا يقل عن 192 ، والبايت الثالث ليس أكبر من 195. العناوين. أول بايت لعنوان البث على مستوى المؤسسة لـ IPv6 هو FF ، ومدى البايت الثاني هو 08 ~ F8 ، ويمكن أن يكون البايتات الأخرى أي قيمة ، مثل FF08 :: و FF48 :: جميعها عمليات بث على مستوى المؤسسة . عنوان.
10. طريقة ISMCSITELOCAL
Return True عندما يكون عنوان IP عبارة عن عنوان بث على مستوى الموقع ، وإلا فكل خطأ. نطاق البث على مستوى الموقع IPv4 هو 239.255.0.0 ~ 239.255.255.255. البايت الأول لعنوان البث على مستوى الموقع IPv6 هو FF ، ومدى البايت الثاني هو 05 ~ F5 ، ويمكن أن تكون البايتات الأخرى أي قيمة ، مثل FF05 :: و FF45 :: جميعها على مستوى الموقع. عنوان.
يمكن للرمز التالي تحديد ما إذا كان عنوان IP ضمن نطاق أنواع العناوين العشرة أعلاه:
اختبار الحزمة ؛ استيراد java.net.*؛ استيراد java.lang.reflect = inetaddress.getByName (args [0]) ؛ تطابق ("IS.*") && method.getParameterTypes (). الطول == 0) {if (boolean.parseboolean (method.invoke (address) .ToString ())) system.out.println (method.g etname ( ) + "= صحيح") ؛ اختبار 1
تنفيذ الأمر التالي:
Java Test.Mynet 224.0.0.1
نتائج التشغيل:
ismclinklocal = truismulticastaddress = صحيح
اختبار 2
تنفيذ الأمر التالي:
java test.mynet ffb1 ::
نتائج التشغيل:
Ismcnodelocal = ismulticastaddress الحقيقي = صحيح