แพ็คเกจ java.net
ทุกคนควรรู้ว่าวัตถุที่เกี่ยวข้องกับเครือข่ายอยู่ในแพ็คเกจ java.net และคลาสภายใต้แพ็คเกจ Java Net มีดังนี้:
1. รับวัตถุโฮสต์ inetaddress
// รับออบเจ็กต์โฮสต์ภายในโฮสต์ InetAddress โฮสต์ = InetAddress.getLocalHost (); // รับวัตถุโฮสต์ตามที่อยู่ IP หรือชื่อโฮสต์ เมื่อได้รับโฮสต์ที่มีชื่อโฮสต์จำเป็นต้องมีความละเอียด DNS InetAddress host = inetaddress.getByName ("192.168.100.124"); InetAddress host = inetaddress.getByName (www.baidu.com);2. รับที่อยู่ IP และชื่อโฮสต์ของวัตถุโฮสต์ (จำเป็นต้องมี DNS เพื่อแก้ไขชื่อโฮสต์)
host.getHostaddress (); host.getHostname ();
3. รับอินเทอร์เฟซทั้งหมดของเครื่องและสำรวจมัน
// ชนิดข้อมูลส่งคืนคือการแจกแจงการรวม <NetWorkInterface> enu = networkInterface.getNetWorkInterfaces (); ในขณะที่ (enu.hasmoreElements) {networkInterface inet = enu.nextElement (); String intName = inet.getName ();}เนื่องจากอาจมีหลายอินเตอร์เฟซย่อยบนอินเทอร์เฟซ (รองรับ IP เช่น ETH0: 1) ตามอินเทอร์เฟซที่แน่นอนคุณสามารถรับชุดการแจงนับของที่อยู่ IP ทั้งหมดของอินเทอร์เฟซ (รวมถึงอินเทอร์เฟซ IPv4 และ IPv6 ทั้ง IPv4 และ IPv6)
การแจงนับ <NetAddress> net_list = inet.getInetAddresses (); ในขณะที่ (net_list.hasmorelements) {Inetaddress net = net_list.nextelement (); string ip = net.getHostaddress ();}คุณสามารถใช้วิธีคอลเลกชันลิสต์ () เพื่อแปลงประเภทการแจงนับเป็นโครงสร้างข้อมูลของคอลเลกชัน ArrayList จากนั้นใช้ traverser iTreator เพื่อสำรวจ
นี่คือวิธีในการรับชื่ออินเทอร์เฟซทั้งหมดของที่อยู่ดั้งเดิมและที่อยู่ IPv4 บนอินเทอร์เฟซเหล่านี้ (สำหรับ Windows และ Linux)
นำเข้า java.net.*; นำเข้า Java.util.*; คลาสสาธารณะ enumdemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ลอง {// รับอินเทอร์เฟซทั้งหมดและใส่ไว้ในคอลเลกชันการรวมตัวแล้วใช้คอลเลกชัน ArrayList <NetWorkInterface> arr = collections.list (enu); สำหรับ (iterator <NetWorkInterface> it = arr.iterator (); it.hasnext ();) {networkInterface ni = it.next (); สตริง intName = ni.getName (); // รับชื่ออินเตอร์เฟส // รับคอลเลกชันอินเตอร์เฟสเครือข่าย IP ทั้งหมดในแต่ละอินเตอร์เฟสเนื่องจากอาจมี arraylist sub-interface <inetAddress> inets = collections.list (ni.getInetAddresses ()); สำหรับ (iterator <inetaddress> it1 = inets.iterator (); it1.hasnext ();) {inetaddress inet = it1.next (); // ตัวกรองเฉพาะที่อยู่ IPv4 มิฉะนั้นที่อยู่ IPv6 จะได้รับในเวลาเดียวกันถ้า (inet instanceof inet4address) {string ip = inet.getHostaddress (); System.out.printf (" %-10S %-5S %-6S %-15S/N", "InetFacename:", intName, "| ipv4:", ip); }}}}} catch (socketexception s) {s.printstacktrace (); -สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com