
public
static
void
main(string[]
args)
{
try
{
//
获取计算机名
string
name
=
inetaddressgetlocalhost()gethostname();
//
获取ip地址
string
ip
=
inetaddressgetlocalhost()gethostaddress();
systemoutprintln("计算机名:"+name);
systemoutprintln("ip地址:"+ip);
}
catch
(unknownhostexception
e)
{
systemoutprintln("异常:"
+
e);
eprintstacktrace();
}
}
是否可以解决您的问题?
requestgetRemoteAddr()如何获取用户真实的IP地址
要获得用户真实的IP地址需要借助请求报头中的x-forwarded-for变量。
requestgetHeader("x-forwarded-for");
完整实例如下
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="javautil"%>
<%
String realIP = requestgetHeader("x-forwarded-for");
String ip = requestgetRemoteAddr();
Enumeration enum = requestgetHeaderNames();
while(enumhasMoreElements())
{
String name = (String)enumnextElement();
String value = requestgetHeader(name);
outwrite(name + "=" + value + "<br$amp;>quot;$);
}
%>
你的IP地址是:<%=realIP%>
转载,仅供参考。
你不是web项目那么request是什么了?
你可以定义一个接口,接口中有setRequest方法,和getRemoteAddr方法
然后在你的主Servlet中将Request设置进去,
再通过getRemoteAddr方法取得IP
实现类中定义一个Request属性,通过setRequest方法设置,
getRemoteAddr方法调用requestgetRemoteAddr方法。
还是没有搞明白你到底要干什么为什么没有request~web项目到处都是request啊~
当我们访问indexjsp/时,其实并不是我们浏览器真正访问到了服务器上的indexjsp 文件,而是先由代理服务器去访问indexjsp。
代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问indexjsp的。
所以indexjsp中通过 requestgetRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址 的方法:
public class Myfilter implements Filter {
public void destroy() {
}
private >
private >
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
request = (>
response = (>
Systemoutprintln(requestgetRequestURI());
Systemoutprintln("===ff===="+requestgetQueryString());
if("1"equals(requestgetRequestURI()substring(("/"+requestgetContextPath())length()))){
requestgetRequestDispatcher("/myjsp")forward(request, response);
return;
}
arg2doFilter(request, arg1);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
楼上的方法是不合理的。第一,如果用户使用代理,是无法获得真实Ip的0;第二,IF语句不能保证禁止IP,而且很多网站并不需要登录的。给楼主些方法,可供参考。
1。 获取用户IP
public String getRemortIP(>
private String getIpAddr() {
String ipAddress = null;
//ipAddress = thisgetRequest()getRemoteAddr();
ipAddress = thisgetRequest()getHeader("x-forwarded-for");
if(ipAddress == null || ipAddresslength() == 0 || "unknown"equalsIgnoreCase(ipAddress)) {
ipAddress = thisgetRequest()getHeader("Proxy-Client-IP");
}
if(ipAddress == null || ipAddresslength() == 0 || "unknown"equalsIgnoreCase(ipAddress)) {
ipAddress = thisgetRequest()getHeader("WL-Proxy-Client-IP");
}
if(ipAddress == null || ipAddresslength() == 0 || "unknown"equalsIgnoreCase(ipAddress)) {
ipAddress = thisgetRequest()getRemoteAddr();
if(ipAddressequals("127001")){
//根据网卡取本机配置的IP
InetAddress inet=null;
try {
inet = InetAddressgetLocalHost();
} catch (UnknownHostException e) {
eprintStackTrace();
}
ipAddress= inetgetHostAddress();
}
}
//对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
if(ipAddress!=null && ipAddresslength()>15){ //""length() = 15
if(ipAddressindexOf(",")>0){
ipAddress = ipAddresssubstring(0,ipAddressindexOf(","));
}
}
return ipAddress;
}
我才用的一个项目,requestgetRemoteAddr();
不是很准确
<%=
requestgetservername()%>
服务器的域名
<%=
javanetinetaddressgetlocalhost()gethostaddress()
%>
服务器的ip地址
<%=requestgetserverport()%>
服务器正在运行的端口
java获取本机的外网ip示例:
import javaioIOException;
import javaioInputStream;
import javanet>
以上就是关于java 怎么获取请求方ip地址全部的内容,包括:java 怎么获取请求方ip地址、request.getRemoteAddr怎么获取用户真实的IP地址、在一个java接口中获取请求客户端的IP地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)