好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

struts2 获取request

?

1

2

httpservletrequest requet=servletactioncontext.getrequest();

requet.getscheme()+ "://" +requet.getservername()+ ":" +requet.getserverport()

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

?

1

2

3

4

5

6

7

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对象获得几种方式:

?

1

2

3

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下使用

?

1

inetaddress.getlocalhost().gethostaddress()

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

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

java代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

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程序设计有所帮助。

原文链接:https://blog.csdn.net/huxiangen/article/details/70895730

查看更多关于Java获取服务器IP及端口的方法实例分析的详细内容...

  阅读:24次