1
22
23 package com.liferay.portal.kernel.util;
24
25 import com.liferay.portal.kernel.log.Log;
26 import com.liferay.portal.kernel.log.LogFactoryUtil;
27
28 import java.net.InetAddress;
29 import java.net.UnknownHostException;
30
31
36 public class IPDetector {
37
38 public static boolean isPrefersV4() {
39 if (_prefersV4 == null) {
40 _prefersV4 = Boolean.valueOf(
41 System.getProperty("java.net.preferIPv4Stack"));
42 }
43
44 return _prefersV4.booleanValue();
45 }
46
47 public static boolean isPrefersV6() {
48 if (_prefersV6 == null) {
49 _prefersV6 = Boolean.valueOf(
50 System.getProperty("java.net.preferIPv6Stack"));
51 }
52
53 return _prefersV6.booleanValue();
54 }
55
56 public static boolean isSupportsV6() {
57 if (_suppportsV6 == null) {
58 _suppportsV6 = Boolean.FALSE;
59
60 try {
61 InetAddress[] inetAddresses = InetAddress.getAllByName(
62 "localhost");
63
64 for (InetAddress inetAddress : inetAddresses) {
65 if (inetAddress.getHostAddress().contains(":")) {
66 _suppportsV6 = Boolean.TRUE;
67
68 break;
69 }
70 }
71 }
72 catch (UnknownHostException uhe) {
73 _log.error(uhe, uhe);
74 }
75 }
76
77 return _suppportsV6.booleanValue();
78 }
79
80 private static Log _log = LogFactoryUtil.getLog(IPDetector.class);
81
82 private static Boolean _prefersV4;
83 private static Boolean _prefersV6;
84 private static Boolean _suppportsV6;
85
86 }