ich habe zwei Rechner miteinander vernetzt (Server, Client) und pinge derzeit den als Client deklarierten Rechner mit einem JAVA-Programm an.
Nun möchte ich die MAC des Zielrechner auslesen, aber das bekomme ich nicht hin.
Ich habe auch schon gesucht und gesucht und Dinge in dieser Art
Java:
importjava.net.NetworkInterface;importjava.util.Collections;publicclassNetworkUtil{publicstaticStringgetMacAddress()throwsException{String result ="";try{for(NetworkInterface ni :Collections.list(NetworkInterface.getNetworkInterfaces())){byte[] hardwareAddress = ni.getHardwareAddress();if(hardwareAddress !=null){for(int i =0; i < hardwareAddress.length; i++){
result +=String.format((i ==0?"":"")+"%02X", hardwareAddress[i]);}if(result.length()>0&&!ni.isLoopback()){return result;}}}}catch(Exception e){
e.printStackTrace();}return result;}}
ausprobiert.
Allerdings MUSS ich in J2SE 1.2 programmieren und bekomme immer
Multiple markers at this line
- Type mismatch: cannot convert from element type Object to
NetworkInterface
- Syntax error, 'for each' statements are only available if source level is 1.5 or
greater
Mit Java 1.2 geht das so nicht. NetworkInterface gibt es erst ab 1.4 (und die neue For-Schleife erst ab Java 5). Du solltest dich echt bemühen, eine aktuelle Java-Version einzusetzen.
Ich kann aber keine andere Version nehmen, da das Programm auf einer JavaVM innerhalb einer Automatisierungs-Steuerung laufen soll, die nur 1.2 verträgt.
Das ist Hardware-nah. Ohne JNI ist da nichts zu machen (wahrscheinlich noch unwahrscheinlicher als ein aktuelles Java). Frage bei dem Hersteller der Automatisierungssteuerung nach. Vielleicht gibt es ein Update.
Du musst nur ein Script (bat oder was auch immer) ankicken - das schreibt den output in ein File und das kann man dann einlesen - ich finde mein eigenes Beispiel nicht mehr
EDIT: Gefunden, aber ich habs auch mit dem ProcessBuilder gemacht
Du musst nur ein Script (bat oder was auch immer) ankicken - das schreibt den output in ein File und das kann man dann einlesen - ich finde mein eigenes Beispiel nicht mehr
Siehe EDIT oben ... Ich dachte ich hätte es ohne ProcessBuilder geschafft, aber eben nur mit dem Umweg über ein File - egal - logisch ist es über den Arbeitsspeicher einfacher.