asp try
Request.ServerVariables("HTTP_X_FORWARDED_FOR")javascript有两种方法
1.winsock object
2.wsh运行ipconfig写入一文件,然后FSO读取文件内容(客户端安全允许)

解决方案 »

  1.   

    <object classid=clsid:{248DD896-BB45-11CF-9ABC-0080C7E7B78D} name=winsock onerror='alert("没安装该控件")'></object>
    <script>alert(winsock.localIP)</script>
      

  2.   

    1.
    <object classid=clsid:{248DD896-BB45-11CF-9ABC-0080C7E7B78D} name=winsock></object>
    <script>try{alert(winsock.localIP)}catch(e){alert("没安装该控件")}</script>2.
    <script>
    function getIP(bat,txt){
    var fso=new ActiveXObject("Scripting.FileSystemObject")
    var f=fso.createTextFile(bat,1);
    f.writeLine("ipconfig>"+txt);
    f.Close();
    var wsh=new ActiveXObject("wscript.shell");
    wsh.run(bat)
    setTimeout(display,1000)
    function display(){
    var f=fso.openTextFile(txt);
    alert(f.ReadAll());
    f.Close();
    fso.DeleteFile(bat);
    fso.DeleteFile(txt);
    }
    }
    getIP("qswhIP.bat","qswhIP.txt")
    </script>
      

  3.   

    下边这个代码可以运行但是怎么关闭DOS,或在后台运行?<script>
    function getIP(bat,txt){
    var fso=new ActiveXObject("Scripting.FileSystemObject")
    var f=fso.createTextFile(bat,1);
    f.writeLine("ipconfig>"+txt);
    f.Close();
    var wsh=new ActiveXObject("wscript.shell");
    wsh.run(bat)
    setTimeout(display,1000)
    function display(){
    var f=fso.openTextFile(txt);
    alert(f.ReadAll());
    f.Close();
    fso.DeleteFile(bat);
    fso.DeleteFile(txt);
    }
    }
    getIP("qswhIP.bat","qswhIP.txt")
    </script>
      

  4.   


    我不赞成用在web页面上用ActiveX技术。Internet上的IP用服务端程序可以获得;
    如果你记录“局域网中的IP”是为了辨别(记录)身份,使用用户注册机制应该更合理,这样就没必要知道具体的“局域网中的IP”(我认为记录局域网中的IP实在没有什么别的用处);
    如果你实在想记录局域网中的IP且公司的网站在局域网中那也是可以的:在公司内PC的web浏览器中设置公司的网站不通过代理服务器访问,你的服务端程序就可取得局域网中的IP了。
      

  5.   

    强烈同意..但知道方法总还是有点好处的.wscript.shell可以做的.