首页 > 开发 > Java > 正文

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

2024-07-14 08:43:12
字体:
来源:转载
供稿:网友

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

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

struts2 获取request

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

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

request.getHeader("User-Agent");  //就是取得客户端的系统版本request.getRemoteAddr();  //取得客户端的IPrequest.getRemoteHost()   //取得客户端的主机名request.getRemotePort();  //取得客户端的端口request.getRemoteUser();  //取得客户端的用户request.getLocalAddr();  //取得服务器IPrequest.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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表