java获取服务器ip(JAVA获取IP地址)

本文目录
- JAVA获取IP地址
- 谁清楚java代码获取ip地址方法是什么
- java 怎么写一个接口 让他返回服务器的动态IP地址和端口
- nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP
- java中如何获取到本机的外网ip地址
- java 调用接口获取服务器IP和端口号
JAVA获取IP地址
public static void main(String args) { try { // 获取计算机名 String name = InetAddress.getLocalHost().getHostName(); // 获取IP地址 String ip = InetAddress.getLocalHost().getHostAddress(); System.out.println(“计算机名:“+name); System.out.println(“IP地址:“+ip); } catch (UnknownHostException e) { System.out.println(“异常:“ + e); e.printStackTrace(); } }
是否可以解决您的问题?
谁清楚java代码获取ip地址方法是什么
1、如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,那么可以获取客户端的真实IP地址request.getRemoteAddr()
2、如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,那么通过request.getRemoteAddr()获取客户端的IP地址是客户端 的代理服务器的地址,并不是客户端的真实地址
3、如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务器
java 怎么写一个接口 让他返回服务器的动态IP地址和端口
首先服务器IP是动态的,这个接口还怎么访问呢?
所以,应该是要请求一个固定可访问的接口,然后这个接口去访回动态的其他服务器IP和端口,而这端口和IP是没办法在本机获取,需要在想要被访问的程序启动时,将其IP和端口写入共享区域(数据库,共享内存等),固定的获取接口根据条件获取动态IP和端口。
nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP
/**
* 获取访问者IP地址
* 《p》在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。《/p》
* 《p》本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割)。《/p》
* 《p》如果还不存在则调用Request.getRemoteAddr()。《/p》
* @param request
* @return
*/
public static String getIp(HttpServletRequest request) {
String ip = request.getHeader(“X-Real-IP“);
if (ValidateUtil.isNotEmpty(ip) && !“unknown“.equalsIgnoreCase(ip)) {
return ip;
}
ip = request.getHeader(“X-Forwarded-For“);
if (ValidateUtil.isNotEmpty(ip) && !“unknown“.equalsIgnoreCase(ip)) {
int index = ip.indexOf(“,“);
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
} else {
return request.getRemoteAddr();
}
}
java中如何获取到本机的外网ip地址
java获取本机的外网ip示例:
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 获取本机外网IP地址
* 思想是访问网站http://checkip.dyndns.org/,得到返回的文本后解析出本机在外网的IP地址
* @author pieryon
*
*/
public class ExternalIpAddressFetcher {
// 外网IP提供者的网址
private String externalIpProviderUrl;
// 本机外网IP地址
private String myExternalIpAddress;
public ExternalIpAddressFetcher(String externalIpProviderUrl) {
this.externalIpProviderUrl = externalIpProviderUrl;
String returnedhtml = fetchExternalIpProviderHTML(externalIpProviderUrl);
parse(returnedhtml);
}
/**
* 从外网提供者处获得包含本机外网地址的字符串
* 从http://checkip.dyndns.org返回的字符串如下
* 《html》《head》《title》Current IP Check《/title》《/head》《body》Current IP Address: 123.147.226.222《/body》《/html》
* @param externalIpProviderUrl
* @return
*/
private String fetchExternalIpProviderHTML(String externalIpProviderUrl) {
// 输入流
InputStream in = null;
// 到外网提供者的Http连接
HttpURLConnection httpConn = null;
try {
// 打开连接
URL url = new URL(externalIpProviderUrl);
httpConn = (HttpURLConnection) url.openConnection();
// 连接设置
HttpURLConnection.setFollowRedirects(true);
httpConn.setRequestMethod(“GET“);
httpConn.setRequestProperty(“User-Agent“,
“Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)“);
// 获取连接的输入流
in = httpConn.getInputStream();
byte bytes=new byte;// 此大小可根据实际情况调整
// 读取到数组中
int offset = 0;
int numRead = 0;
while (offset 《 bytes.length
&& (numRead=in.read(bytes, offset, bytes.length-offset)) 》= 0) {
offset += numRead;
}
// 将字节转化为为UTF-8的字符串
String receivedString=new String(bytes,“UTF-8“);
// 返回
return receivedString;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
in.close();
httpConn.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
}
// 出现异常则返回空
return null;
}
/**
* 使用正则表达式解析返回的HTML文本,得到本机外网地址
* @param html
*/
private void parse(String html){
Pattern pattern=Pattern.compile(“(\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})“, Pattern.CASE_INSENSITIVE);
Matcher matcher=pattern.matcher(html);
while(matcher.find()){
myExternalIpAddress=matcher.group(0);
}
}
/**
* 得到本机外网地址,得不到则为空
* @return
*/
public String getMyExternalIpAddress() {
return myExternalIpAddress;
}
public static void main(String args){
ExternalIpAddressFetcher fetcher=new ExternalIpAddressFetcher(“http://checkip.dyndns.org/“);
System.out.println(fetcher.getMyExternalIpAddress());
}
}
java 调用接口获取服务器IP和端口号
《%=
request.getservername()%》
服务器的域名
《%=
java.net.inetaddress.getlocalhost().gethostaddress()
%》
服务器的ip地址
《%=request.getserverport()%》
服务器正在运行的端口

更多文章:
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00






