حزمة java.net
يجب أن يعلم الجميع أن الكائنات المتعلقة بالشبكة موجودة في حزمة Java.net ، والفئات الموجودة تحت حزمة Java Net هي كما يلي:
1. احصل على الكائن المضيف inetaddress
// احصل على كائن المضيف المحلي Inetaddress Host = inetaddress.getlocalhost () ؛ // احصل على كائن المضيف بناءً على عنوان IP أو اسم المضيف. عند الحصول على المضيف مع اسم المضيف ، يلزم دقة DNS. inetaddress مضيف = inetaddress.getByName ("192.168.100.124") ؛ inetaddress مضيف = inetaddress.getByName (www.baidu.com) ؛2. احصل على عنوان IP واسم المضيف لكائن المضيف (مطلوب DNS لحل اسم المضيف)
Host.gethostaddress () ؛ host.gethostname () ؛
3. احصل على جميع واجهات الماكينة وتجاوزها
// نوع بيانات الإرجاع هو التعداد <NognomInterface> ENU = NetworkInterface.getNetworkInterFaces () ؛ بينما (enu.hasmoreElements) {networkIndface inet = enu.nextElement () ؛ سلسلة intname = inet.getName () ؛}نظرًا لأنه قد يكون هناك العديد من الأماكن الفرعية على واجهة (دعم IP ، مثل ETH0: 1) ، وفقًا لواجهة معينة ، يمكنك الحصول على مجموعة التعداد لجميع عناوين IP للواجهة (بما في ذلك واجهات IPv4 و IPv6).
التعداد <InetAddress> net_list = inet.getInetAddresses () ؛ بينما (net_list.hasmoreElements) {inetaddress net = net_list.nextElement () ؛ سلسلة IP = net.gethostaddress () ؛}يمكنك استخدام طريقة collections.list () لتحويل نوع التعداد إلى بنية بيانات مجموعة ArrayList ثم استخدام ItReator Traverser لتجارة.
فيما يلي طريقة للحصول على جميع أسماء الواجهة للعنوان الأصلي وعنوان IPv4 على هذه الواجهات (لنظام التشغيل Windows و Linux).
استيراد java.net.*؛ استيراد java.util.*؛ الطبقة العامة enumDemo {public static void main (string [] args) {try {// get all واجهات ووضعها في مجموعة التعداد ، ثم استخدام collections.list () لتحويل مجموعة التعداد إلى مجموعة arrayLister <novelInterface> ArrayList <NetworkInterface> arr = collections.list (ENU) ؛ لـ (iterator <NetworkInterface> it = arr.iterator () ؛ it.hasNext () ؛) {networkInterface ni = it.next () ؛ سلسلة intname = ni.getName () ؛ // احصل على اسم الواجهة // احصل على جميع مجموعات واجهة شبكة IP في كل واجهة ، لأنه قد يكون هناك arraylist subface <inetaddress> inets = collections.list (ni.getinetaddresses ()) ؛ لـ (iterator <InetAddress> it1 = inets.iterator () ؛ it1.hasnext () ؛) {inetaddress inet = it1.next () ؛ // filter عناوين IPv4 فقط ، وإلا سيتم الحصول على عنوان IPv6 في نفس الوقت إذا (inet extorlyof inet4address) {string ip = inet.gethostaddress () ؛ System.out.printf ("٪-10s ٪ -5S ٪ -6S ٪ -15S/N" ، "inetfacename:" ، intname ، "| ipv4:" ، IP) ؛ }}}}} catch (socketException s) {s.printStackTrace () ؛ }}}لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.