Java 获取,
分享于 点击 4526 次 点评:245
Java 获取,
1、获取ip :使用request.getHeader("x-forwarded-for")获取真实IP,x-forwarded-for的值并不止一个,而是一串IP值,获取为空时,使用request.getRemoteAddr()、getHeader("Proxy-Client-IP")、getHeader("WL-Proxy-Client-IP")方法进行获取
1:@ResponseBody
@RequestMapping(value="/getipone", produces="application/json")
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
System.out.println("request.getRemoteAddr();" + request.getRemoteAddr());
return request.getRemoteAddr();
}
System.out.println("request.getHeader(x-forwarded-for):" + request.getHeader("x-forwarded-for"));
return request.getHeader("x-forwarded-for");
}
2:@ResponseBody
@RequestMapping(value="/getiptwo", produces="application/json")
public String getRemortIP(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
System.out.println("ip-------" + ip);
return ip;
}
2、通过ping命令判断是否离线 ,使用run.exec()进行ping命令连接某个网站,根据返回的结果进行判读是否已经离线
/**
* 通过ping命令判断是否离线
* @return
*/
public static boolean offLine() {
Runtime run = Runtime.getRuntime();
try {
Process process = run.exec("ping www.hao123.com");
InputStream s = process.getInputStream();
BufferedReader bis = new BufferedReader(new InputStreamReader(s));
String str = bis.readLine();
while (str != null) {
if (str.startsWith("Reply from")) {
return false;
}
str = bis.readLine();
}
process.waitFor();
} catch (IOException ex) {
Logger.getLogger(SyncTime.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(SyncTime.class.getName()).log(Level.SEVERE, null, ex);
}
return true;
}
3、获取sessionId
String sessionId=request.getSession().getId();
System.out.println("sessionId = " + sessionId);
4、获取服务器系统时间
String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
System.out.println("date = " + date);
5、获取当前链接地址
String requestUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + request.getServletPath();
System.out.println("当前链接地址:" + requestUrl);
6、获取前一页链接地址
System.out.println("前一页链接地址:" + request.getRequestURI());
7、省份城市、城市ip
jsp:
//js使用搜狐接口获取当前城市ip、城市名称,传输到java中
$(function () {
if (navigator.onLine) {
$.getScript('http://pv.sohu.com/cityjson', function (_result) {//搜狐接口
if (returnCitySN.cip != '') {
cityip = returnCitySN.cip;
cityName = returnCitySN.cname;
$.post("${ctx}/LoginServer/sessioncity.do", {cityip:cityip,cityName:cityName}, function () {});
} else {
console.log("网络出错,无法定位到当前城市")
}
});
} else {
console.log("暂无网络服务");
}
})
java:
/**
* session设置城市ip和城市省份
* @param cityip 城市ip
* @param cityName 城市省份
* @param request 无返回
*/
@ResponseBody
@RequestMapping(value="/sessioncity", produces="application/json")
public void city(String cityip, String cityName, HttpServletRequest request) {
HttpSession session = request.getSession();
session.setAttribute("cityip", cityip);
session.setAttribute("cityName", cityName);
}
HttpSession session = request.getSession();
System.out.println("省份城市:" + session.getAttribute("cityName"));
System.out.println("城市ip:" + session.getAttribute("cityip"));
8、获取浏览器信息
System.out.println("获取浏览器信息:" + request.getHeader("User-Agent"));
9、操作系统名称
//获取系统属性值
Properties props=System.getProperties();
//操作系统名称
String osName = props.getProperty("os.name");
System.out.println("操作系统名称:" + osName);
相关文章
- 暂无相关文章
用户点评