我想知道localhost 192.168.1.101与实际的网络地址有什么关系,用java可以获取到localhost的地址,但是我想知道本机的实际网络地址,请问该如何转换,或者如何获取?

解决方案 »

  1.   

    LZ是指获得在外网的IP吧。应该必须访问网关,在本机取不到的吧。
      

  2.   

    对啊,我是想获得本机在整个internet的地址,不是指仅在局域网内部的地址,怎么访问网关呢?能说得具体点吗,不是很明白
      

  3.   

    呃……我也不知道
    如果是经由路由器接入网络,那大概就是有路由器的什么服务来获得。如此之类的。还有个笨方法,去访问某个会显示访问者IP的网站,通过它来拿到IP地址。
      

  4.   

    你可以访问一些会返回你公网IP的网站,如www.ip168.com之类的就可以从返回结果中得到自己的IP地址
    本机是无法直接获取的
      

  5.   


    正确。外网相当于给你的内部网络添加了一个Proxy
      

  6.   

    如果你处于外网
    import java.net.*;InetAddress addr;
    addr = InetAddress.getLocalHost();
    System.out.println(addr.getHostAddress().toString());//获得本机IP
    System.out.println(addr.getHostName().toString());//获得本机名称
    如果是内网,就要依靠外部的服务器来做定位了
    例如楼上提供的一些ip网站
    或者你主动去连接一个外部的SOCKET,反显IP来看看
      

  7.   

    连外网的一些IP网站,或连外网,取反回是的IP
      

  8.   

    如果是路由连的话 直接进路由就知道你的外网ip了
    整个内网在外网看来都是同一个ip地址
    如果想让外网访问你自己的电脑的话
    那就应该调下路由器,把需要的端口映射到你的电脑好像叫虚拟服务器什么的,
    然后用外网的地址带端口访问就行了