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,伺服器端應用滑喚也無法直接通過轉發請求的地址返回給客戶端。