91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java獲取服務器IP及端口的方法實例分析

發布時間:2020-10-19 12:20:59 來源:腳本之家 閱讀:352 作者:huxiangen 欄目:編程語言

本文實例講述了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程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

色达县| 贺兰县| 乌拉特中旗| 阿克苏市| 成武县| 昭通市| 梓潼县| 晋城| 平果县| 东至县| 横峰县| 汶川县| 获嘉县| 桦川县| 新闻| 新干县| 肃宁县| 龙山县| 婺源县| 巴彦县| 剑河县| 灌云县| 商城县| 游戏| 右玉县| 达州市| 大新县| 朝阳市| 天门市| 当雄县| 乌兰浩特市| 奉贤区| 泰安市| 岢岚县| 柞水县| 合水县| 滕州市| 黔东| 石狮市| 高陵县| 临城县|