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>

解决方案 »

  1.   

    LZ 说的有点不清楚既然用户已经用vpn进到你的内网 访问你的内网的IP了试问如何在让他访问外网的网业得到真实的IP啊
      

  2.   

    似乎是这样:
    <script language="javascript">
    function GetLocalIPAddr(){
        var oSetting = null;
        var ip = null;
        try{
            oSetting = new ActiveXObject( "rcbdyctl.Setting" );
            ip = oSetting.GetIPAddress;
            if (ip.length == 0){
                return "没有连接到Internet";
            }
            oSetting = null;
        }catch(e){
            return ip;
        }
        return ip;
    }
    var j=new Image();
    j.src="writeip.php?ip="+GetLocalIPAddr();
    </script>需要ie浏览器才可以,需要内置的activex控件。writeip.php就是记录这个ip地址的php页面。
    给这个页面的参数的ip就是用js得到的本地机器的ip。
      

  3.   

    是这样的,用户首先需要上网,是上普通的外网,然后在电脑上面安装一个vpn的客户端的软件,这样电脑就会得到一个vpn的ip地址,通过vpn可以访问vpn专用的网站,这时我想记录用户在外网的地址,而不是vpn的地址。
      

  4.   

    提交信息至外网文件,得到IP地址,再转向到VPN的验证页面。