2014-03-24 63 views

回答

4

使用正則表達式來匹配您的IP地址:

^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$ 

我相信有一個相關答案here

摘錄:

private static final String PATTERN = 
     "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + 
     "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + 
     "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + 
     "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"; 

public static boolean validate(final String ip){   

     Pattern pattern = Pattern.compile(PATTERN); 
     Matcher matcher = pattern.matcher(ip); 
     return matcher.matches();    
} 
+1

當然,這符合'976.888.421.634'這樣的東西。 *編輯* - 編輯地址。 –

1

可靠的方法是使用Guava's InetAddresses.isInetAddress() method

否則,你可以測試使用正則表達式來粗略地匹配點分四組十進制形式(即,^\d{1,3}(\.\d{1,3}){3}$然後測試用:

InetAddress.getByName(yourInputString) 

該地址是格式良好的(這個方法不會做任何如果字符串參數是一個IP文字,它只是檢查其句法)名稱解析。

需要注意的是番石榴的方法有它的IPv6的優勢。

0

與嘗試r實用程序類

相關問題