在开发微信支付的项目时候,企业支付中需要配置服务器的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测试工程。