工具类|通过Java很简单的方式获取当前机器外网地址~

在开发微信支付的项目时候,企业支付中需要配置服务器的IP地址,之前有的时候是配置文件的方式进行配置,后来感觉太麻烦了。每次部署到不同服务器的时候都需要修改,后来改用了自动获取的方式进行配置。效果还不错,分享一下。

直接上代码工具类,可以取走直接用:

package com.fengchen.ip;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import net.sf.json.JSONObject;

/**
 * 获取当前本机外网IP地址
 * @author dafei
 *
 */
public class IPUtil {
	
	public static String getInternetIp()
	{
		String ipJson = getIpJson();
		JSONObject jo = JSONObject.fromObject(ipJson);
		if(jo.has("ip"))
		{
			return jo.getString("ip");
		}
		return null; 
	}
	
	public static String getIpJson()
	{
		Process process;
		BufferedInputStream bis = null;
		BufferedReader br = null;
		try {
			process = Runtime.getRuntime().exec("curl http://ipinfo.io");
			bis = new BufferedInputStream(
	                process.getInputStream());
	        br = new BufferedReader(new InputStreamReader(bis));
	        String line;
	        StringBuffer sb = new StringBuffer();
	        while ((line = br.readLine()) != null) {
	        	sb.append(line);
	        }
	        return sb.toString();
		} catch (IOException e) {
			e.printStackTrace();
		}
		finally
		{
			if(bis != null)
			{
				try {
					bis.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
            if(br != null)
            {
            	try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
            }
		}
        return null;
	}
	
	public static void main(String[] args) {
		String ip = getInternetIp();
		System.out.println(ip);
	}

}

推荐下大飞做的一个Java技术类公众号“Java实战宝典”,主要是收集一些日常工作中常用的工具类,一些实战项目的教学及一些疑难问题整理。
在这里插入图片描述
以上工具类在关注公众号后输入“1005”即可获得maven测试工程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值