Java获取服务器IP及端口的方法实例分析

本文实例讲述了Java获取服务器IP及端口的方法。分享给大家供大家参考,具体如下:

前几天写过一个获取远程服务器的IP和端口的程序,从网上查了一些资料顺便加一些自己的理解,希望对大家有所帮助:

struts2 获取request

HttpServletRequest requet=ServletActionContext.getRequest();
requet.getScheme()+"://"+requet.getServerName()+":"+requet.getServerPort()

(例如)结果为:http://localhost:8080/

request.getHeader("User-Agent");  //就是取得客户端的系统版本
request.getRemoteAddr();  //取得客户端的IP
request.getRemoteHost()   //取得客户端的主机名
request.getRemotePort();  //取得客户端的端口
request.getRemoteUser();  //取得客户端的用户
request.getLocalAddr();  //取得服务器IP
request.getLocalPort();  //取得服务器端口

1、JSP中获得当前应用的相对路径和绝对路径

根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径 :application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath("/");
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()

2 Servlet中获得当前应用的相对路径和绝对路径

根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");

ServletContext对象获得几种方式:

javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()

3.Java类中获得绝对路径

根据java.io.File的Doc文挡,可知: 默认情况下new File("/")代表的目录为:System.getProperty("user.dir")

扩展:

上面的获取IP方法,只能获取到127.0.0.1,无语

在window下使用

InetAddress.getLocalHost().getHostAddress()

这种方法在linux却只能取到127.0.0.1这个让人无奈的地址。。。这简直是让人不能忍受的啊。。。这种地址不用获取,我们谁不知道。。。

在网上搜索了很多,发现说这个问题的并不多,所以,我把找到的一段代码分享给大家。。。当然这段代码需要jdk1.5以上版本

Java代码:

Enumeration<NetworkInterface> netInterfaces = null;
try {
  netInterfaces = NetworkInterface.getNetworkInterfaces();
  while (netInterfaces.hasMoreElements()) {
    NetworkInterface ni = netInterfaces.nextElement();
    System.out.println("DisplayName:" + ni.getDisplayName());
    System.out.println("Name:" + ni.getName());
    Enumeration<InetAddress> ips = ni.getInetAddresses();
    while (ips.hasMoreElements()) {
      System.out.println("IP:"
      + ips.nextElement().getHostAddress());
    }
  }
} catch (Exception e) {
  e.printStackTrace();
}
Enumeration<NetworkInterface> netInterfaces = null;
try {
    netInterfaces = NetworkInterface.getNetworkInterfaces();
    while (netInterfaces.hasMoreElements()) {
        NetworkInterface ni = netInterfaces.nextElement();
        System.out.println("DisplayName:" + ni.getDisplayName());
        System.out.println("Name:" + ni.getName());
        Enumeration<InetAddress> ips = ni.getInetAddresses();
        while (ips.hasMoreElements()) {
            System.out.println("IP:"
            + ips.nextElement().getHostAddress());
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}

这段代码会输出计算机中所有设备的ip,找需要的用吧,呵呵

更多关于java相关内容感兴趣的读者可查看本站专题:《Java Socket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • 使用Java代码获取服务器性能信息及局域网内主机名

    最近做个项目,就是要取得cpu占有率等等的系统信息,一开始以为要用动态链接库了,但后来发现可以像下面这样做,不去调用jni,这样省去了很多看新技术的时间o(∩_∩)o... 在Java中,可以获得总的物理内存.剩余的物理内存.已使用的物理内存等信息,下面例子可以取得这些信息,并且获得在Windows下的内存使用率.      首先编写一个MonitorInfoBean类,用来装载监控的一些信息,包括物理内存.剩余的物理内存.已使用的物理内存.内存使用率等字段,该类的代码如下: package c

  • java 获取服务器真实IP的实例

     java 获取服务器真实IP的实例 前言: 根据操作系统的不同,获取的结果不同,故需要区分系统,分别获取 实现代码: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.io.UnsupportedEncodingExcept

  • java获取服务器基本信息的方法

    本文实例讲述了java获取服务器基本信息的方法.分享给大家供大家参考.具体如下: 利用第三方的jar包:(Hyperic-hq官方网站:http://www.hyperic.com) 通过Hyperic-hq产品的基础包sigar.jar来实现服务器状态数据的获取.Sigar.jar包是通过本地方法来调用操作系统API来获取系统相关数据.Windows操作系统下Sigar.jar依赖sigar-amd64-winnt.dll或sigar-x86-winnt.dll,linux 操作系统下则依赖l

  • java编程实现获取服务器IP地址及MAC地址的方法

    本文实例讲述了java编程实现获取服务器IP地址及MAC地址的方法.分享给大家供大家参考,具体如下: 已测系统: windows linux unix 排除127.0.0.1 和 0.0.0.0.1等非正常IP import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.ArrayList; import java.util.Enu

  • 浅谈java获取服务器基本信息

    实现步骤: (1)创建servlet BrowserServer (2)调用HttpServletRequest对象的getServerName()方法获取服务器名称 (3)调用HttpServletRequest对象的getServerPort()方法获取服务器端口 (4)首先调用getServletContext()方法获取ServletContext对象,然后调用ServletContext对象的getServerInfo()方法获取服务器环境信息名称.版本信息 (5)利用HttpServ

  • Java 获取服务器环境的实例详解

    Java 获取服务器环境的实例详解 废话不多说,直接上代码,代码中的注释写的比较清楚,请大家好好看, package com.rapido.utils; import java.util.Properties; /** * 获取服务器环境信息 * @author X-rapido * */ public class SystemDataUtil { public static Properties getSystemProperties() { Properties props = System

  • Java获取服务器IP及端口的方法实例分析

    本文实例讲述了Java获取服务器IP及端口的方法.分享给大家供大家参考,具体如下: 前几天写过一个获取远程服务器的IP和端口的程序,从网上查了一些资料顺便加一些自己的理解,希望对大家有所帮助: struts2 获取request HttpServletRequest requet=ServletActionContext.getRequest(); requet.getScheme()+"://"+requet.getServerName()+":"+requet.

  • 如何在logback日志配置里获取服务器ip和端口

    目录 logback日志配置获取服务器ip和端口 1.新建一个类继承ClassicConverter 2.在配置文件logback.xml增加如下配置 3.在需要用到ip的位置这样写: %ip 4.获取端口号,同理 让Logback日志中显示主机名与IP地址及一切你想显示的 1.创建 2.重新方法 3.配置logback.xml logback日志配置获取服务器ip和端口 1.新建一个类继承ClassicConverter 在方法中获取服务器ip package com.xxx.xxx.xxx.

  • java 获取用户的MAC地址多种方法实例详解

    java实现获取用户的MAC地址方法: 方法一:将本机地址与局域网内其他机器区分开来 /** * 根据IP地址获取mac地址 * @param ipAddress 127.0.0.1 * @return * @throws SocketException * @throws UnknownHostException */ public static String getLocalMac(String ipAddress) throws SocketException, UnknownHostEx

  • PHP获取对象属性的三种方法实例分析

    本文实例讲述了PHP获取对象属性的三种方法.分享给大家供大家参考,具体如下: 今天查看yii源码,发现yii\base\Model中的attribute()方法是通过反射获取对象的public non-static属性.记得以前看到的代码都是用get_object_vars()这个函数获取的,昨天查看php文档,发现还可以用foreach遍历对象属性.于是写个例子练习下. class TestClass { private $a; protected $b; public $c; public

  • JS获取并处理php数组的方法实例分析

    本文实例讲述了JS获取并处理php数组的方法.分享给大家供大家参考,具体如下: $music=array(); $music['tayler']=array(); $music['walker']=array(); $music['tayler'][]='ours'; $music['tayler'][]='style'; $music['tayler'][]='red'; $music['walker'][]='all fall down'; $music['walker'][]='faded

  • java获取客服端信息的方法(系统,浏览器等)

    如下所示: String agent = request.getHeader("user-agent"); System.out.println(agent); StringTokenizer st = new StringTokenizer(agent,";"); st.nextToken(); String userbrowser = st.nextToken(); System.out.println(userbrowser); String useros =

  • java检查服务器的连通两种方法代码分享

    首先要了解一下ping的内容. 概述 PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序.Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议:回声请求消息给目的地并报告是否收到所希望的ICMPecho (ICMP回声应答).它是用来检查网络是否通畅或者网络连接速度的命令.作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用

随机推荐