用js好像是得不到自己的ip地址的,而用服务器端的得到的是代理的地址,关注中。

解决方案 »

  1.   

    netscape好像可以。ie不知道有没有控件支持。
      

  2.   

    applet方案:
    **********************
    //Addr.java
     //Addr.java
    import java.awt.*;
    import java.applet.Applet;
    import java.net.InetAddress;public class Addr extends Applet {
            public void init() {
                 
            }
            public void start() {
                
            }
            public void stop() {
               
            }
            public void paint (Graphics g) {
               
            }
            public String getLocalAddress(){
    String localAddress;
    try{
    localAddress=InetAddress.getLocalHost().getHostAddress();
    }catch(Exception e){
    localAddress=e.toString();
    }
                      return localAddress;  
    }}**************************
    <!--example.htm>
    <HTML>
    <BODY>
    <APPLET 
       CODE="Addr.class" WIDTH="0" HEIGHT="0" MAYSCRIPT> 
    </APPLET><FORM NAME = form1>
    <INPUT TYPE = BUTTON VALUE = "showLocalAddr" onClick = "getLocalAddr()">
    </FORM></BODY><SCRIPT LANGUAGE = JavaScript>function getLocalAddr()
    {
        var localAddr;
        localAddr=document.applets[0].getLocalAddress();  
    alert("IP:" + localAddr);
    }
    </SCRIPT>
    </HTML  >
    *******************************
    得到的结果是:
    如果客户端与服务器位于同一台机器,可以得到正确的IP
    如果客户端与服务器位于不同的机器,客户端总是得到127.0.0.1
    为什么?
      

  3.   

    IP有那么多个。本地取本地的IP有意义么?
    只有两台机子互相通信时,才有一个相对固定的IP来做联系。
    java应该有能力得到本地IP列表吧?
      

  4.   

    to  Lostinet(迷失网络):
    感谢您的答复!
    用这种方式取得客户端的IP,再通过隐藏字段传到服务器端,这样,如果客户端通过代理访问,服务器也可以得到客户端的IP。