import java.io.*; import java.net.*; import java.util.*; publicclass getMac { publicstaticvoid main(String[] args) { //Get IP of local host String IP =""; IP = getIP(); System.out.println(IP); //Get OS type String OSName = getOSName(); System.out.println("os.name:"+OSName); //Get IPconfig command String IPconfig = getIPconfig(OSName); System.out.println("IPconfig:"+IPconfig); //Get the configuration of your system String sysconfig = getSysConfig(IPconfig); System.out.println("sysconfig:"+sysconfig); //Get MAC address of eth0 String MAC = getMAC(sysconfig,OSName); System.out.println("MAC : "+MAC); String DNS = getDNS(sysconfig,OSName); System.out.println("DNS : "+DNS); } //Get OS type publicstatic String getOSName(){ Properties properties =null ; properties = System.getProperties(); String OSName = properties.getProperty("os.name"); return OSName; } //Get IPconfig command publicstatic String getIPconfig(String OSName){ String IPconfig =""; //RedHat Linux 9.0 if (OSName.compareToIgnoreCase("Linux")==0){ IPconfig="ifconfig"; //WINDOWS XP }elseif ( OSName.compareToIgnoreCase("Windows XP")==0 ){ IPconfig="ipconfig /all"; //other OS that I don't know }else{ System.out.println("I don't know your os type !"); System.exit(1); } return IPconfig; } //Get the configuration of your system publicstatic String getSysConfig(String ipconfig){ String sysconfig =""; try{ Process p = Runtime.getRuntime().exec(ipconfig); InputStreamReader reader =new InputStreamReader(p.getInputStream()); char[] localConfig=newchar[2000]; reader.read(localConfig); for (int i=0;i<2000 ;i++ ){ sysconfig+=localConfig[i]; } } catch (java.io.IOException ex) { System.err.println("Problems invoking "+ipconfig); System.exit(1); } return sysconfig; } //Get MAC address of eth0 //This function can only be used by getMAC privatestatic String getmac(String sysconfig,String macstr){ String mac =""; int index=sysconfig.indexOf(macstr); index+=macstr.length(); for (; index<=sysconfig.length() ;index++ ){ if (sysconfig.charAt(index)>='0') if (sysconfig.charAt(index)<='9') break; if (sysconfig.charAt(index)>='a') if (sysconfig.charAt(index)<='f') break; if (sysconfig.charAt(index)>='A') if (sysconfig.charAt(index)<='F') break; } for (int i=0;i<17 ;i++ ) { mac+=sysconfig.charAt(index); index++; } return mac; } //Get MAC address of eth0 //This function can only be used by getMAC privatestatic String getdns(String sysconfig,String macstr){ String dns =""; int index=sysconfig.indexOf(macstr); index+=macstr.length(); for (; index<=sysconfig.length() ;index++ ){ if (sysconfig.charAt(index)>='0') if (sysconfig.charAt(index)<='9') break; if (sysconfig.charAt(index)>='a') if (sysconfig.charAt(index)<='f') break; if (sysconfig.charAt(index)>='A') if (sysconfig.charAt(index)<='F') break; } for (int i=0;i<15;i++ ) { dns+=sysconfig.charAt(index); index++; } for (int i=0;i<44;i++ ) { index++; } for (int i=0;i<15;i++ ) { dns+=sysconfig.charAt(index); index++; } return dns; } //Get MAC address of eth0 publicstatic String getMAC(String sysconfig,String OSName){ String MAC =""; //RedHAT Linux 9.0 if (OSName.compareToIgnoreCase("Linux")==0){ MAC=getmac(sysconfig,"Ethernet HWaddr"); } //WINDOWS XP elseif ( OSName.compareToIgnoreCase("Windows XP")==0 ){ MAC = getmac(sysconfig,"Physical Address"); } else{ System.out.println("I don't know your os type !"); System.exit(1); } return MAC; } //Get MAC address of eth0 publicstatic String getDNS(String sysconfig,String OSName){ String DNS =""; //RedHAT Linux 9.0 if (OSName.compareToIgnoreCase("Linux")==0){ DNS=getmac(sysconfig,"Ethernet HWaddr"); } //WINDOWS XP elseif ( OSName.compareToIgnoreCase("Windows XP")==0 ){ DNS = getdns(sysconfig,"DNS Servers"); } else{ System.out.println("I don't know your os type !"); System.exit(1); } return DNS; } //Get IP of eth0 publicstatic String getIP(){ String IP =""; try{ Enumeration nifs= NetworkInterface.getNetworkInterfaces(); while (nifs.hasMoreElements()){ NetworkInterface netIf= (NetworkInterface)nifs.nextElement(); String nifName= netIf.getName(); if (nifName.compareToIgnoreCase("lo")==0){ continue ; } System.out.print(nifName +" : "); for (Enumeration nifIp= netIf.getInetAddresses(); nifIp.hasMoreElements();) { InetAddress address= (InetAddress)nifIp.nextElement(); IP= address.getHostAddress(); System.out.println(IP); } } }catch (Exception e) { e.printStackTrace(); } return IP; } }