[
https://issues.apache.org/jira/browse/IO-805?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17804954#comment-17804954
]
Elliotte Rusty Harold commented on IO-805:
------------------------------------------
Per Wikipedia, "No formal specification of this textual IP address
representation exists." I think the existing code is fine for our purposes.
> FilenameUtils.isIPv4Address does not handle illegal integers
> ------------------------------------------------------------
>
> Key: IO-805
> URL: https://issues.apache.org/jira/browse/IO-805
> Project: Commons IO
> Issue Type: Bug
> Reporter: Hao Zhong
> Priority: Major
>
> {code:java}
> private static boolean isIPv4Address(final String name) {
> final Matcher m = IPV4_PATTERN.matcher(name);
> if (!m.matches() || m.groupCount() != 4) {
> return false;
> } // verify that address subgroups are legal
> for (int i = 1; i <= 4; i++) {
> final String ipSegment = m.group(i);
> final int iIpSegment = Integer.parseInt(ipSegment);
> if (iIpSegment > IPV4_MAX_OCTET_VALUE) {
> return false;
> } if (ipSegment.length() > 1 &&
> ipSegment.startsWith("0")) {
> return false;
> } } return true;
> } {code}
> In the above code, final int iIpSegment = Integer.parseInt(ipSegment) will
> throw exceptions when ipSegment is illegal.
>
> The nearby isIPv6Address provides an example to handle the problem:
>
> {code:java}
> private static boolean isIPv6Address(final String inet6Address) {
> ...
> try { octetInt = Integer.parseInt(octet, BASE_16);
> } catch (final NumberFormatException e) {
> return false; }
> }{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)