1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java获取(外网)网络IP和本机真实IP Java获取真实IP Java获取真实ip Java获取本机ip

Java获取(外网)网络IP和本机真实IP Java获取真实IP Java获取真实ip Java获取本机ip

时间:2020-10-22 00:29:12

相关推荐

Java获取(外网)网络IP和本机真实IP Java获取真实IP Java获取真实ip Java获取本机ip

/*** IP地址相关工具类*/public class IpUtil {private static final Logger logger = LoggerFactory.getLogger(IpUtil.class);/*** <h2>获取本机的外网ip地址</h2>* @return*/public static String getV4OrV6IP() {String ip = null;// 访问其他网站获取ip// 测试网站 /String test = "";StringBuilder inputLine = new StringBuilder();String read = "";URL url = null;HttpURLConnection urlConnection = null;BufferedReader in = null;try {url = new URL(test);urlConnection = (HttpURLConnection) url.openConnection();in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));while ((read = in.readLine()) != null) {inputLine.append(read);}ip = inputLine.toString();} catch (Exception e) {logger.error("获取网络IP地址异常,这是具体原因: ", e);} finally {if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}if(ip == null){// 没有获取到ip 给默认ipip = "120.229.119.86";logger.info("获取网络IP地址异常, 赋值默认ip: 【{}】", ip);}return ip;}/*** <h2>获取本机真实地址</h2>* @param request* @return*/public static String getIpAddr(HttpServletRequest request) {String ipAddress;try {ipAddress = request.getHeader("x-forwarded-for");if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {ipAddress = request.getHeader("Proxy-Client-IP");}if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {ipAddress = request.getHeader("WL-Proxy-Client-IP");}if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {ipAddress = request.getRemoteAddr();if (ipAddress.equals("127.0.0.1")) {// 根据网卡取本机配置的IPInetAddress inet = null;try {inet = InetAddress.getLocalHost();} catch (UnknownHostException e) {logger.error("获取本机地址异常,这是具体原因: ", e);}ipAddress = inet.getHostAddress();}}// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割if (ipAddress != null && ipAddress.length() > 15) {// "***.***.***.***".length()// = 15if (ipAddress.indexOf(",") > 0) {ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));}}} catch (Exception e) {ipAddress = "";}return ipAddress;}public static void main(String[] args) {System.out.println(IpUtil.getV4OrV6IP());}}

Java获取(外网)网络IP和本机真实IP Java获取真实IP Java获取真实ip Java获取本机ip Java获取 本机真实ip

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。