|
From: <an...@us...> - 2007-08-01 13:12:35
|
Revision: 667
http://magicmap.svn.sourceforge.net/magicmap/?rev=667&view=rev
Author: anweiss
Date: 2007-08-01 06:12:34 -0700 (Wed, 01 Aug 2007)
Log Message:
-----------
better parsing of mac addresses
Modified Paths:
--------------
trunk/magicmapclient/src/net/sf/magicmap/client/net/LinuxNetworkInfo.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/net/LinuxNetworkInfo.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/net/LinuxNetworkInfo.java 2007-08-01 13:10:38 UTC (rev 666)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/net/LinuxNetworkInfo.java 2007-08-01 13:12:34 UTC (rev 667)
@@ -6,6 +6,8 @@
import java.io.IOException;
import java.text.ParseException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class LinuxNetworkInfo extends NetworkInfo {
@@ -39,9 +41,10 @@
if (containsLocalHost && lastMacAddress != null) return lastMacAddress;
// see if line contains MAC address
- if (line.indexOf("Hardware") == -1 && line.indexOf("HWaddr") == -1) continue;
-
- String macAddressCandidate = line.substring(line.length() - 17).trim();
+ int macaddressPosition;
+ if ((macaddressPosition=line.indexOf("Hardware") + 9) == 8 && (macaddressPosition=line.indexOf("HWaddr")+7) == 6) continue;
+
+ String macAddressCandidate = line.substring(macaddressPosition).trim();
if (isMacAddress(macAddressCandidate)) {
lastMacAddress = macAddressCandidate;
continue;
@@ -84,8 +87,10 @@
return "";
}
- private final boolean isMacAddress(String macAddressCandidate){
- if (macAddressCandidate.length() != 17) return false;
- return true;
+ private static boolean isMacAddress(String macAddressCandidate){
+ Pattern macPattern = Pattern
+ .compile("[0-9a-fA-F]{2}[-: ]{1}[0-9a-fA-F]{2}[-: ]{1}[0-9a-fA-F]{2}[-: ]{1}[0-9a-fA-F]{2}[-: ]{1}[0-9a-fA-F]{2}[-: ]{1}[0-9a-fA-F]{2}");
+ Matcher m = macPattern.matcher(macAddressCandidate);
+ return m.matches();
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|