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地址。