本文实例讲述了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程序设计有所帮助。
继续阅读与本文标签相同的文章
淘宝大学华西分校落地,探索赋能商家更多形式
-
业务系统同城双区部署方案
2026-05-19栏目: 教程
-
RDS_DRDS数据库分配原则
2026-05-19栏目: 教程
-
《21天学通Python(第2版)》| 每日读本书
2026-05-19栏目: 教程
-
ConcurrentHashMap比其他并发集合的安全效率要高一些?
2026-05-19栏目: 教程
-
不写代码也能玩转AI,uber最新开源项目了解一下?
2026-05-19栏目: 教程
