论坛首页 海阔天空论坛

脑筋急转弯:本机IP到底是多少?

浏览 8901 次
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-09  

        Socket s = new Socket();
        s.setSoTimeout(3000);
        s.connect(new InetSocketAddress("baidu.com",80));
        s.getOutputStream().write("g\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n".getBytes());
        s.getOutputStream().flush();
        System.out.println(s.getInputStream().read());
        System.out.println("local"+s.getLocalAddress());

上面代码按理说应该返回本机IP, 比如192.168.0.xxx,在手机上运行正常。

但是电脑上运行一直得到127.0.0.1。。。郁闷了好几天,终于发现机关,原来。。。。

   发表时间:2007-04-09  
大多数人的电脑上应该正常
0 请登录后投票
   发表时间:2007-04-09  
host
0 请登录后投票
   发表时间:2007-04-09  
电脑的本机ip就是 127.0.0.1也就是就是localhost
0 请登录后投票
   发表时间:2007-04-09  
LocalAddress()
0 请登录后投票
   发表时间:2007-04-09  
非也非也,这种方法在手机上建立连接,并且得到跟目的主机相连的那个连接的实际IP, 应该不会得到127.0.0.1
0 请登录后投票
   发表时间:2007-04-10  
steeven 写道
非也非也,这种方法在手机上建立连接,并且得到跟目的主机相连的那个连接的实际IP, 应该不会得到127.0.0.1

答案就在
ping baidu.com
0 请登录后投票
   发表时间:2007-04-10  
 System.out.println("local"+s.getLocalAddress());   
我电脑上不是127
双网卡
0 请登录后投票
   发表时间:2007-04-10  
jfy3d 写道
&nbsp;System.out.println(&quot;local&quot;+<font color="#800000">s.getLocalAddress()</font>);&nbsp;&nbsp;&nbsp; <br />
我电脑上不是127
我电脑上也正常,是192.168.*.*
0 请登录后投票
   发表时间:2007-04-10  
竟然没一个人想到答案,javaeye真是堕落了
0 请登录后投票
论坛首页 海阔天空版

跳转论坛:
Global site tag (gtag.js) - Google Analytics