java获取项目所在服务器的ip地址和端口号(获取当前ip地址)

àì夳堔傛蜴生んèń 2021-09-07 06:02 1521阅读 0赞

不传参数,直接通过ServletRequestAttributes获取当前项目所在服务器的端口号和ip地址

  1. public static String getUrl(){
  2. ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
  3. HttpServletRequest request = requestAttributes.getRequest();
  4. String localAddr = request.getLocalAddr();
  5. int serverPort = request.getServerPort();
  6. return "http://"+localAddr +":"+ serverPort;
  7. }

通过 HttpServletRequest 传参数获取当前项目所在服务器的端口号和ip地址

  1. //获取本地服务器的ip地址和端口号
  2. public static String getHttpUrl(HttpServletRequest request){
  3. String localAddr = request.getLocalAddr();
  4. int serverPort = request.getServerPort();
  5. return "http://"+localAddr +":"+ serverPort;
  6. }

Java获取当前系统的ip地址,端口号从配置文件读取

  1. @Value("${server.port}")
  2. private int serverPort;
  3. public String getUrl() {
  4. InetAddress address = null;
  5. try {
  6. address = InetAddress.getLocalHost();
  7. } catch (UnknownHostException e) {
  8. e.printStackTrace();
  9. }
  10. return "http://"+address.getHostAddress() +":"+this.serverPort;
  11. }

tomcat服务器启动到时候获取服务器的ip和端口号,本方法在windows系统没问题,再Linux系统就不行了 //获取本地服务器的ip地址和端口号

  1. public static String getUrl() {
  2. String serverIp = "";
  3. String serverPort = "";
  4. try {
  5. MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
  6. Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"),
  7. Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
  8. serverIp = InetAddress.getLocalHost().getHostAddress();
  9. serverPort = objectNames.iterator().next().getKeyProperty("port");
  10. } catch (Exception e) {
  11. e.printStackTrace();
  12. }
  13. String ipAndPost = "http://" + serverIp + serverPort;
  14. return ipAndPost;
  15. }

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2OTYxMjI2_size_16_color_FFFFFF_t_70

#

获取服务器的ip+端口号

  1. public static String PathAddress() {
  2. String strResult = "";
  3. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
  4. .getRequestAttributes()).getRequest();
  5. StringBuffer strBuf = new StringBuffer();
  6. strBuf.append(request.getScheme() + "://");
  7. strBuf.append(request.getServerName() + ":");
  8. strBuf.append(request.getServerPort() + "");
  9. strBuf.append(request.getContextPath() + "/");
  10. strResult = strBuf.toString();// +"FHADMINM/";//加入项目的名称
  11. return strResult;
  12. }

发表评论

表情:
评论列表 (有 0 条评论,1521人围观)

还没有评论,来说两句吧...

相关阅读

    相关 获取当前服务器ip地址

    一、场景 老项目有多个实例,有个定时任务需要限制只在一台机器上执行,选择在代码里限制机器执行的ip,不满足指定的ip就不执行。也有其它的方法,如设置开关、分布式的任务调度