java 获取访问主机的ip地址
Java的api的说法:
getHeader
public java.lang.String getHeader(java.lang.String name)
Return the first value of the specified header, if any; otherwise, return null
返回指定标头的第一个值(如果有的话);否则返回null。
Specified by:
getHeader in interface javax.servlet.http.HttpServletRequest
在javax.servlet.http.httpservletrequest getheader接口
Parameters:
name - Name of the requested header
响应头文件中的json数据中的key
下面代码是通过HttpServletRequest获取主机的ip地址:
/**
* 获取登陆IP
* @param request
* @param response
* @return
*/
public String getIpAddr(HttpServletRequest request) {
//处理代理访问获取不到真正的ip问题的
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
//获取代理中中的ip
ip = request.getHeader("PRoxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
//获取代理中中的ip ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
//非代理的情况获取ip
ip = request.getRemoteAddr();
} return ip;
}
遇到的问题,有时候我们获取的ip为0.0.0.0.0.1为ipv6的的地址,这是由于服务器和客户端在一起导致的,在服务器端的host文件中指定localhost的ip地址为127.0.0.1或是真实的ipv4的地址就可以。
java 获取访问主机的ip地址的更多相关文章
- Java 获取客服端ip地址
Java 获取客服端ip地址 /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p& ...
- java获取当前网站的IP地址
package ip; import java.net.InetAddress; import java.net.UnknownHostException; /** * * @author * */ ...
- java获取访问者真实的IP地址
众所周知java方法request.getremoteaddr()可以获得访问者的IP地址 但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件 ...
- JAVA 获取指定网址的IP地址 实例
如今买票是一大难事,在高峰时段 打开12306网站,慢的像蜗牛,想到以前用修改hosts文件来登录Google(Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址 ...
- java获取登陆用户的IP地址
/** * 通过HttpServletRequest返回IP地址 * @param request HttpServletRequest * @return ip String * @throws E ...
- Java获取请求主机真实ip
一般情况下 getRemoteAddr()是可以正常使用的,代码如下: public String getIpAdress(HttpServletRequest request) { ip = req ...
- java 获取本机的IP地址
方法一:这种方式有一定的局限性,在Linux下的执行结果是:本机的IP = xxx/127.0.1.1 (其中xxx是你的计算机名) public void getLocalIPAddress() { ...
- java 获取本机所有IP地址
import java.net.Inet6Address; import java.net.InetAddress; import java.net.NetworkInterface; import ...
- java获取系统当前服务器IP地址
public String getServiceIp(){ InetAddress address; String myIp; try { address = InetAddress.getLocal ...
随机推荐
- 自己动手开发IOC容器
前两天写简历.写了一句:精通Spring IoC容器.怎么个精通法?还是自己动手写个IOC容器吧. 什么是IoC(Inversion of Control)?什么是DI(Dependency Inje ...
- 近期建了一个.net源代码共享群,群共享有大量网友分享的.net(C#)商业源代码
本群创建于2013/6/21: 群里都是.net(C#)程序开发者,群共享有大量网友分享的.net(C#)商业源代码.比方:DTCMS旗舰版,hishop微分销,shopnum微分销.多用户微信公众平 ...
- C++ Primer(第五版)读书笔记 & 习题解答 --- Chapter 1
Chapter 1.1 1. 每个C++程序都必须有且只能有一个main函数,main函数的返回类型必须是int.操作系统通过调用main函数来运行C++程序. 2. 一个函数的定义包含四部分:返回类 ...
- NHibernate 组件基础 (第六篇)
NHibernate 组件基础 (第六篇) 一.组件简介 组件(Component)可以理解为被一个对象所包含的对象而持久化,而并非一个实体.简单说来,假如数据库有FirstName,LastName ...
- Cocoa 静态显示一个对话框
M // // form2.m // test_multi_window // // Created by on 23/7/14. // Copyright (c) 2014 EDU. All rig ...
- hdu1535——Invitation Cards
Invitation Cards Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- 【Mac系统 + Python + Django】之开发一个发布会系统【Django视图(二)】
此学习资料是通过虫师的python接口自动化出的书学习而来的,在此说明一下,想学习更多的自动化的同学可以找虫师的博客园,非广告,因为我python+selenium自动化也是跟虫师学的,学习效果很好的 ...
- UFLDL深度学习笔记 (六)卷积神经网络
UFLDL深度学习笔记 (六)卷积神经网络 1. 主要思路 "UFLDL 卷积神经网络"主要讲解了对大尺寸图像应用前面所讨论神经网络学习的方法,其中的变化有两条,第一,对大尺寸图像 ...
- JVM调优- 学习笔记(转)
http://blog.csdn.net/fenglibing/article/details/6321453 GC学习笔记 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就 ...
- LINQ TO SQL:操作有层次关系的对象
对于关系型数据与对象数据之间最大的隔阂就是由标识列连接起来的行(关系型数据)与由集合保存的对象(对象数据)之间的冲突. 例如某个Subject对象(也就是数据库中的Subject表),从Subject ...