بحثت عن طريقة للحصول على عنوان MAC عبر الإنترنت ووجدت طريقتين مختلفتين.
النوع الأول
يرمي الفراغ الثابت العام (سلسلة [] args) الاستثناء {inetaddress ia = inetaddress.getlocalhost () ؛ system.out.println (getMacaddress (ia)) ؛} سلسلة ثابتة petmacaddress (inetaddress ia) ترمي الاستثناء {// الحصول على كائن واجهة الشبكة (أي بطاقة الشبكة) واحصل على عنوان Mac ، الموجود في صفيف البايت. byte [] mac = networkInterface.getByInetAddress (ia) .GethardWareadDress () ؛ // الكود التالي هو تجميع عنوان MAC في stringstringbuffer sb = new stringbuffer () ؛ for (int i = 0 ؛ i <mac.length ؛ i ++) {if (i! تحويل البايت إلى سلسلة عدد صحيح موجب s = integer.toHexString (mac [i] & 0xff) ؛ sb.append (s.length () == 1؟ 0 + s: s) ؛يبدو أن هذه الطريقة قادرة على الحصول على عنوان MAC للجهاز فقط.
النوع الثاني
الباطل الثابت الرئيسي (سلسلة [] args) يلقي الاستثناء {getMac ("192.168.1.186") ؛} السلسلة الثابتة العامة getMac (String IP) {String str = null ؛ string mac = null ؛ try {process p = runtime.getRuntime (). exec ("nbtstat -a" + ip) ؛ inputStreamReader IR = جديد inputStreamReader (p.getInputStream () ، "GBK") ؛ المدخلات الكتانية = الكتان الجديد (IR) ؛ لـ (؛ true ؛) {str = input.readline () ؛ if (str! = null) {if (str.indexof ("mac address")> 1) {mac = str.substring (str.indexof ("mac address") + 9) ؛ break ؛ }}} system.out.println (mac) ؛} catch (ioException e) {E.PrintStackTrace () ؛أنا أفضل هذه الطريقة ، ولكن قد تكون هذه الطريقة أقل فعالية في الوقت. هناك نقطة يجب الانتباه إليها في هذا. تذكر تغيير دفق البيانات إلى تنسيق GBK ، وإلا فإن بيانات القراءة ستشوه ولن تتمكن من المتابعة لاحقًا. ثم تحديد الحقول. قد يكون البعض "عنوان MAC" ، لذلك قد تحتاج إلى إجراء بعض التعديلات بنفسك.
ما سبق هما كل الطريقتين (الموصى بهما) للحصول على عناوين Mac في Java التي قدمها لك المحرر. آمل أن يتمكن الجميع من دعم wulin.com أكثر ~