คลาส Inetaddress
คลาส InetAddress ใช้เพื่อห่อหุ้มที่อยู่ IP ดิจิตอลและชื่อโดเมนของที่อยู่ที่เรากล่าวถึงก่อนหน้านี้
คุณโต้ตอบกับคลาสนี้ผ่านชื่อโฮสต์ IP ซึ่งง่ายและเข้าใจง่ายกว่าที่อยู่ IP
หมายเลขที่อยู่ถูกซ่อนอยู่ในคลาส Inetaddress
วิธีการจากโรงงานในคลาส Inetaddress
คลาส Inetaddress ไม่มีตัวสร้างที่ชัดเจน ในการสร้างวัตถุ Inetaddress ต้องใช้วิธีการที่มีอยู่ในโรงงาน
วิธีการจากโรงงานเป็นเพียงการประชุมสำหรับวิธีการคงที่ในชั้นเรียนเพื่อส่งคืนอินสแตนซ์ของคลาสนั้น
สำหรับ InetAddress สามวิธี: getLocalHost (), getByName () และ getAllByName () สามารถใช้เพื่อสร้างอินสแตนซ์ของ inetAddress
getLocalHost () ส่งคืนเฉพาะวัตถุ InetAddress ที่เป็นสัญลักษณ์ของ localhost
ที่อยู่ท้องถิ่นยังเป็น LocalHost, 127.0.0.1 และที่อยู่ทั้งสามนี้เหมือนกัน
เมธอด getByName () ส่งคืน InetAddress ที่ส่งผ่านไปยังชื่อโฮสต์
หากวิธีการเหล่านี้ไม่สามารถแก้ไขชื่อโฮสต์ได้พวกเขาจะยกข้อยกเว้น UnknownHostException
บนอินเทอร์เน็ตเป็นเรื่องปกติที่จะใช้หนึ่งชื่อเพื่อแสดงหลายเครื่อง
วิธีการ GetAllByName () โรงงานส่งคืนอาร์เรย์ของคลาส InetAddresses ที่แสดงถึงที่อยู่ทั้งหมดที่ย่อยสลายด้วยชื่อพิเศษ
เมื่อชื่อไม่สามารถย่อยสลายเป็นที่อยู่ได้อย่างน้อยหนึ่งที่อยู่มันจะเพิ่มข้อยกเว้นที่ไม่รู้จัก HostException
ตัวอย่างโปรแกรม
InetAddressTest01
แพ็คเกจ com.example.network; นำเข้า java.net.inetaddress; คลาสสาธารณะ inetaddressTest01 {โมฆะคงที่หลัก (สตริง [] args) โยนข้อยกเว้น {enderded ที่อยู่ = inetaddress.getLocalhost (); /เอาท์พุท: ชื่อเครื่อง/ที่อยู่ IP // ตัวอย่างเช่นชื่อผู้ใช้ PC/10.4.16.131 // รับที่อยู่ IP ผ่านที่อยู่ชื่อโดเมน = InetAddress.getByName ("www.sohu.com"); (ที่อยู่); ใช้คลาส Inetaddress เพื่อกำหนดที่อยู่ IP พิเศษ
ที่อยู่ IP แบ่งออกเป็นที่อยู่สามัญและที่อยู่พิเศษ บทความก่อนหน้านี้ส่วนใหญ่เป็นที่อยู่ IP ทั่วไป
1. วิธี isanylocaladdress
กลับมาจริงเมื่อที่อยู่ IP เป็นที่อยู่ Wildcard มิฉะนั้นจะส่งคืนที่อยู่ที่ผิดพลาด การใช้ที่อยู่ WildCard ช่วยให้การเชื่อมต่อไคลเอนต์จากอินเทอร์เฟซเครือข่ายใด ๆ ที่จะได้รับการยอมรับบนโฮสต์เซิร์ฟเวอร์ ที่อยู่ Wildcard ของ IPv4 คือ 0.0.0.0 ::.
2. วิธีการ ISLOOPBACKADDRESS
ส่งคืนจริงเมื่อที่อยู่ IP คือที่อยู่ loopback มิฉะนั้นส่งคืนที่อยู่ false.loopback แสดงถึงที่อยู่ IP ของเครื่อง ช่วงของที่อยู่วนรอบของ IPv4 คือ 127.0.0.0 ~ 127.255.255.255.255 ตัวอย่างเช่น 127.1.2.3 และ 127.0.200.200 เป็นที่อยู่วนรอบ ที่อยู่วนรอบของ IPv6 คือ 0: 0: 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 = 128 ได้รับการพิจารณาจาก 127.0.0.1 TTL = 128 Reply จาก 127.0.0.1: ไบต์ = 32 เวลา <1ms ttl = 128ping สถิติสำหรับ 127.200.200.200: แพ็คเก็ต: ส่ง = 4, ได้รับ = 4, หายไป = 0 (0% ขาดทุน) วินาที: ขั้นต่ำ = 0ms, สูงสุด = 0ms, ค่าเฉลี่ย = 0ms
แม้ว่า 127.255.255.255 ก็เป็นที่อยู่วนรอบ แต่ 127.255.255.255 ไม่สามารถ pinged ใต้หน้าต่างได้ นี่เป็นเพราะ 127.255.255.255 เป็นที่อยู่ออกอากาศ
III.
กลับมาจริงเมื่อที่อยู่ IP คือที่อยู่การเชื่อมต่อในท้องถิ่น (LinkLocalAddress) มิฉะนั้นช่วงของที่อยู่การเชื่อมต่อท้องถิ่นของ IPv4 คือ 169.254.0.0 ~ 169.254.255.255 บิตสามารถเป็นค่าตามอำเภอใจเช่น FE88: และ Fe80 :: ABCD :: เป็นที่อยู่การเชื่อมต่อในท้องถิ่นทั้งหมด
iv.
ส่งคืนจริงเมื่อที่อยู่ IP เป็นที่อยู่ท้องถิ่นของภูมิภาค (siteLocaladdress) มิฉะนั้นที่อยู่ของที่อยู่ที่ส่งคืน false.IPV4 แบ่งออกเป็นสามส่วน: 10.0.0.0 ~ 10.255.255.255, 172.16.0.0 ~ 172.31.255.2555 192.168.0.0 ~ 192 .168
5. วิธี ismulticastaddress
กลับมาจริงเมื่อที่อยู่ IP เป็นที่อยู่ออกอากาศ (multicastaddress) มิฉะนั้นจะส่งคืนที่ผิดพลาด ช่วงของที่อยู่ออกอากาศของ IPv4 คือ 224.0.0.0 ~ 239.255.255.255.255.255 รายละเอียดเกี่ยวกับที่อยู่ออกอากาศจะถูกกล่าวถึงในบทในอนาคต
6. วิธี ismcglobal
กลับมาจริงเมื่อที่อยู่ IP เป็นที่อยู่ออกอากาศทั่วโลกมิฉะนั้นจะส่งคืนที่อยู่ที่เป็นเท็จ ที่อยู่การออกอากาศ IPv4 เป็นที่อยู่ออกอากาศทั่วโลกยกเว้นที่อยู่ IP 224.0.0.0 และไบต์แรกคือ 239 ไบต์แรกในที่อยู่การออกอากาศทั่วโลกของ IPv6 คือ FF ไบต์ที่สองคือ 0e ~ fe และอื่น ๆ ไบต์อื่น ๆ อาจมีค่าใด ๆ เช่น ffbe :: และ ff0e :: เป็นที่อยู่ออกอากาศทั่วโลก
7. วิธี ismclinklocal
กลับมาจริงเมื่อที่อยู่ IP เป็นที่อยู่การออกอากาศย่อยมิฉะนั้นจะส่งคืนที่อยู่ออกอากาศโดยใช้ซับเน็ตสามารถส่งข้อมูลไปยังคอมพิวเตอร์ในซับเน็ต ช่วงของการออกอากาศย่อยของ IPv4 คือ 224.0.0.0 ~ 224.0.0.255 :: และ FF02: ABCD :: เป็นที่อยู่การออกอากาศย่อยทั้งหมด
8. วิธี ismcnodelocal
กลับมาจริงเมื่อที่อยู่ IP เป็นที่อยู่อินเทอร์เฟซในท้องถิ่นมิฉะนั้นจะส่งกลับเท็จ ที่อยู่การออกอากาศ IPv4 ทั้งหมดไม่ใช่ที่อยู่การออกอากาศอินเทอร์เฟซในพื้นที่ ไบต์แรกของที่อยู่การออกอากาศอินเทอร์เฟซในท้องถิ่นของ IPv6 คือ FF ช่วงของไบต์ที่สองคือ 01 ~ F1 และอื่น ๆ ไบต์สามารถเป็นค่าใด ๆ เช่น FFB1 :: และ FF01: A123 :: เป็นอินเทอร์เฟซท้องถิ่นทั้งหมด ที่อยู่ออกอากาศ
9. วิธี ismcorglocal
ส่งคืน ture เมื่อที่อยู่ IP เป็นที่อยู่ออกอากาศทั่วทั้งองค์กรมิฉะนั้นจะส่งกลับเท็จ ไบต์แรกของที่อยู่ออกอากาศทั่วทั้งองค์กรของ IPv4 คือ 239 ไบต์ที่สองไม่น้อยกว่า 192 และไบต์ที่สามไม่เกิน 195 ตัวอย่างเช่น 239.193.100.200 และ 239.192.195.0 ที่อยู่ ไบต์แรกของที่อยู่ออกอากาศทั่วทั้งองค์กรของ IPv6 คือ FF ช่วงของไบต์ที่สองคือ 08 ~ F8 และอื่น ๆ ไบต์สามารถเป็นค่าใด ๆ เช่น ff08 :: และ ff48 :: ทั้งหมดเป็นองค์กรออกอากาศทั่วทั้งองค์กร . ที่อยู่.
10. วิธี ismcsitelocal
กลับมาจริงเมื่อที่อยู่ IP เป็นที่อยู่ออกอากาศทั่วทั้งไซต์มิฉะนั้นจะเป็นเท็จ ช่วงของการออกอากาศทั่วทั้งไซต์ของ IPv4 คือ 239.255.0.0 ~ 239.255.255.255.255 ไบต์แรกของที่อยู่การออกอากาศทั่วทั้งไซต์ IPv6 คือ FF ช่วงของไบต์ที่สองคือ 05 ~ F5 และอีกไบต์อื่น ๆ อาจมีค่าใด ๆ เช่น FF05 :: และ FF45 :: เป็นการออกอากาศทั่วทั้งไซต์ทั้งหมด ที่อยู่.
รหัสต่อไปนี้สามารถพิจารณาได้ว่าที่อยู่ IP อยู่ในช่วงของที่อยู่สิบประเภทด้านบน:
การทดสอบแพ็คเกจ; นำเข้า java.net.*; นำเข้า Java.lang.reflect.*; คลาสสาธารณะ Mynet {โมฆะสาธารณะคง = InetAddress.getByName (args [0]); จับคู่ ("IS.*") && method.getParameterTypes (). ความยาว == 0) {ถ้า (boolean.parseboolean (method.invoke (ที่อยู่) .tostring ())) System.out.println (method.g etname (method.g etname ) + "= true");}}}} ทดสอบ 1
ดำเนินการคำสั่งต่อไปนี้:
java test.mynet 224.0.0.1
ผลการทำงาน:
ismclinklocal = truisismulticastaddress = true
ทดสอบ 2
ดำเนินการคำสั่งต่อไปนี้:
java test.mynet ffb1 ::
ผลการทำงาน:
ismcNodelocal = true ismulticastaddress = true