2015年8月10日 星期一

「Java」將字串格式IP轉換成數值格式

我們想將 192.168.1.100 轉換成一個整數值,可以透過下列程式碼


public int parseNumericAddress(String ipaddr) {

// Check if the string is valid

if (ipaddr == null || ipaddr.length() < 7 || ipaddr.length() > 15)
    return 0;

// Check the address string, should be n.n.n.n format

StringTokenizer token = new StringTokenizer(ipaddr, ".");
if (token.countTokens() != 4)
    return 0;

int ipInt = 0;

while (token.hasMoreTokens()) {

// Get the current token and convert to an integer value

String ipNum = token.nextToken();
try {

// Validate the current address part

int ipVal = Integer.valueOf(ipNum).intValue();
if (ipVal < 0 || ipVal > 255)
    return 0;

// Add to the integer address

ipInt = (ipInt << 8) + ipVal;
} catch (NumberFormatException ex) {
return 0;
}
}

// Return the integer address

return ipInt;
}

沒有留言:

張貼留言