1、JAVA Servlet获取IP地址问题
String ipaddress = request.getRemoteHost()
你的Tomcate 或者 jboss服务器部署在win7下的时候在网络共享中心里面把IPV6协议关掉
2、怎么在servlet中获取客户端ip-CSDN论坛
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP。
request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址的方法一:
public String getRemortIP(HttpServletRequest request)
3、servlet怎么得到request的ip地址
request.getRemoteAddr()
.这个可以取ip地址。但是如果请求经过代理,这个方法可能不能取到客户真实ip。
4、servlet 如何取得请求主机的IP 或者发送请求的URL
在servlet里面写如下代码:
String strip = request.getRemoteAddr();
5、java servlet如何获取客户端外网IP
String ipAddress = null;
//ipAddress = this.getRequest().getRemoteAddr();
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")){
//根据网卡取本机配置的IP
InetAddress inet=null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress= inet.getHostAddress();
}
}
//对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15
if(ipAddress.indexOf(",")>0){
ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
}
}
System.out.println("ip=="+ipAddress);
out.println("ip="+ipAddress);
6、Servlet如何获取客户端(用户)的外网ip?
public String getIpAddr(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;
}
这样试试
7、Servlet能不能动态设置ip地址!就是我放进入什么地址,用servlet的获取ip地址方法就取
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP。
request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址的方法一:
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
8、用servlet如何获取IP?
Locale languageType=request.getLocale();//获取用户语言
String localIp=request.getLocalAddr();//获取本地ip
int localPort=request.getLocalPort();//获取本地的端口
String localName=request.getLocalName();//获取本地计算机的名字
String remoteIp=request.getRemoteAddr();//获取客户端的ip
int remotePort=request.getRemotePort();//获取客户端的端口号
String serverName=request.getRemoteHost();//获取远程计算机的名字
System.out.println("语言类型->"+languageType);
System.out.println(localName+" "+serverName);
System.out.println(localIp+":"+localPort+" "+remoteIp+":"+remotePort);}public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String requestURL=request.getRequestURL().toString();//获取除参数之外的地址信息
String requestURI=request.getRequestURI();
String queryString=request.getQueryString();
System.out.println("请求的地址->"+requestURL);
System.out.println("请求的地址后的信息->"+queryString);}
9、我在servlet中将服务器IP和端口返回到页面,页面通过$.ajax获取。为什么获取不到?后台已经输出了
那就说明没有获取到内容啊。
请严格按照ajax写法写。
10、java的servlet 不通过request能获取到服务器IP与提供的端口号吗。
所以javascript可以通过ajax技术来获得后端语言得到的IP,并返回到前端。
1:通过java的servlet获取IP:
public String getRemoteAddress(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {
ip = request.getRemoteAddr();
}
return ip;
}
如果是用反向代理技术的话request.getHeader("x-forwarded-for");会有值,
一般情况下,只要request.getRemoteAddr();就可以了。
2:获取MAC:
public String getMACAddress(String ip) {
String str = "";
String macAddress = "";
try {
Process p = Runtime.getRuntime().exec("nbtstat -a " + ip);
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
for (int i = 1; i < 100; i++) {
str = input.readLine();
if (str != null) {
//if (str.indexOf("MAC Address") > 1) {
if (str.indexOf("MAC") > 1) {
macAddress = str.substring(
str.indexOf("=") + 2, str.length());
break;
}
}
}
} catch (IOException e) {
e.printStackTrace(System.out);
}
return macAddress;
}
通过命令nbtstat -a ip来获得该ip相对应的mac地址。