Board logo

标题: [原创js]IP和整数互换 [打印本页]

作者: s11ss     时间: 2007-12-14 22:44    标题: [原创js]IP和整数互换


////////IP和整数互换 {s11ss 2007-12-14}////////

var str,re,n=new Array(),i,answer=0,q,r;

if(WScript.Arguments.Count()<1) {
        WScript.Echo("IP<->Integer\n"
                                +"e.g.:\n"
                                +"1.cscript/nologo \""+WScript.ScriptFullName+"\" 127.0.0.1\n"
                                +"2.cscript/nologo \""+WScript.ScriptFullName+"\" 2130706433\n");
        WScript.Quit();
}

str=WScript.Arguments(0);

//IP转整数:
re=/^(\d{1,2}|[0-1]\d{2}|2[0-4]\d|25[0-5])\.(\d{1,2}|[0-1]\d{2}|2[0-4]\d|25[0-5])\.(\d{1,2}|[0-1]\d{2}|2[0-4]\d|25[0-5])\.(\d{1,2}|[0-1]\d{2}|2[0-4]\d|25[0-5])$/gi;
if(re.test(str)) {
     n[1]=RegExp.$1;
     n[2]=RegExp.$2;
     n[3]=RegExp.$3;
     n[4]=RegExp.$4;
     for(i=1;i<=4;i++) answer=answer+parseInt(n[i])*Math.pow(256,(4-i));
     WScript.Echo("IP "+str+" 对应的整数为: "+answer);
     WScript.Quit();
}

//整数转IP:
re=/^\d+$/gi;
if(re.test(str)) {
        q=parseInt(str);
        answer="";
        while(q!=0) {
                r=q%256;
                q=parseInt(q/256);
                if(answer=="") answer=r.toString(); else answer=r.toString()+"."+answer;
        }
        WScript.Echo("整数 "+str+" 对应的IP为: "+answer);
        WScript.Quit();
}

WScript.Echo("参数有误!只能为整数或IP!")