java服务器客户端ip地址
① 服务端怎么获取客户端的ip java
网络通信可分为两种模式:TCP有连接的通信
UDP无连接的通信
依照上述的问题我可以理解为你是要进行有连接的通信。是要经过三次握手才能实现可靠的连接
第一次:建立连接时三次握手,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN(Synchronize Sequence Numbers)同步序列号。
服务器端即可使用:
Socket s=serverSocket.accept();
String clientIP=s.getInetAddress().toString();
这就实现了java服务器端获取到连接此服务器的客户端的IP了,你若想实现获取所有连接此服务器的客户端的IP,你可以把每次accept()返回的socket放进全局的Vector里面,然后在遍历这个vector方法就同上代码咯……
② java 获取客户端ip地址
如果能过http 请求,那获得真实的ip的方法是使用request.getRemoteAddr(),
若客户端使用了代理 ,请参考:http://sonicmq.javaeye.com/blog/416565
如果是C/S的程序
客户端调用InetAddress.getLocalHost()得到的是客户端的内网ip
③ 谁清楚java代码获取ip地址方法是什么
1、如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,那么可以获取客户端的真实IP地址request.getRemoteAddr()
2、如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,那么通过request.getRemoteAddr()获取客户端的IP地址是客户端 的代理服务器的地址,并不是客户端的真实地址
3、如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务器
④ java 怎么获取客户端的ip
publicString察清兆getIpAddr(HttpServletRequestrequest){
Stringip=request.getHeader("X-Real-IP");
if(!StringUtils.isBlank(ip)&&!"unknown".equalsIgnoreCase(ip))
{
returnip;
}
ip=request.getHeader("X-Forwarded-For");
if(!StringUtils.isBlank(ip)&&!"unknown".equalsIgnoreCase(ip))
{
intindex=ip.indexOf(',');
if(index!=-1){
returnip.substring(0,index);
}else{
returnip;
}
}
正宏returnrequest.getRemoteAddr();
}
不过获取本机的ip地址 会变败租成 0.0.0.0.0.1
⑤ java中怎么获取客户端的真实的ip和端口号
public static String getHostIpAddress() {
String hostIp = "";
InetAddress netAddress = getInetAddress();
hostIp = getHostIp(netAddress);
return hostIp;
}
public static InetAddress getInetAddress() {
try {
return InetAddress.getLocalHost();
} catch (UnknownHostException e) {
System.out.println("unknown host!");
}
return null;
}
public static String getHostIp(InetAddress netAddress) {
if (null == netAddress) {
return null;
}
String ip = netAddress.getHostAddress(); // get the ip address
return ip;
}
public static String getHostName(InetAddress netAddress) {
if (null == netAddress) {
return null;
}
String name = netAddress.getHostName(); // get the host address
return name;
}
⑥ java获取客户端IP
如果公司手毕没是固定IP,那么通过这数迟个固定IP上网的局域网用户,在外网被获取的IP也应该是这个固定IP,那么可不可以自己写个过毕纳滤器
⑦ 在java后台服务器,如何根据HttpSession获得客户端ip
只能根据用户请求带过来的sessionID所匹配的ip地址 而且只可以通过request获得ip 反正你能得到session 那得到request是一样简单的不是吗
得到request后命令为:
String ip = request.getRemoteAddr();
这个ip字符串就是了
⑧ java获取客户端ip的方法我怎么调用
一般获取客户端的IP地址的方法是:request.getRemoteAddr();但是在通过了Apache,Squid等反向代理软件就不能获取到客户掘则端的真实IP地址了。
原因:由于在客户端和服判让棚务之间增加了中间代理,因此服务器无法直接拿到客户端的IP,服务器端应用滑唤也无法直接通过转发请求的地址返回给客户端。