相当于mongodb中的INET_ATON()

在MongoDB中INET_ATON()的等价物是什么? 我正在使用mongodb的nodejs,所以如果nodejs中的等价物是可用的,那么它就足够好了。

这是别人的解决scheme,用于将IP地址从点分十进制string转换为32位数字:

 function dot2num(dot) { var d = dot.split('.'); return ((((((+d[0])*256)+(+d[1]))*256)+(+d[2]))*256)+(+d[3]); } 

从这里: 存储为int的IP地址导致溢出?

 // ip example: 192.168.2.1 function inet_aton(ip){ // split into octets var a = ip.split('.'); var buffer = new ArrayBuffer(4); var dv = new DataView(buffer); for(var i = 0; i < 4; i++){ dv.setUint8(i, a[i]); } return(dv.getUint32(0)); } // num example: 3232236033 function inet_ntoa(num){ var nbuffer = new ArrayBuffer(4); var ndv = new DataView(nbuffer); ndv.setUint32(0, num); var a = new Array(); for(var i = 0; i < 4; i++){ a[i] = ndv.getUint8(i); } return a.join('.'); } 

http://rolfrost.de/ipjs.html

 function inet_aton(ip){ var a = new Array(); a = ip.split('.'); return((a[0] << 24) >>> 0) + ((a[1] << 16) >>> 0) + ((a[2] << 8) >>> 0) + (a[3] >>> 0); } function inet_ntoa(n){ var a = ((n >> 24) & 0xFF) >>> 0; var b = ((n >> 16) & 0xFF) >>> 0; var c = ((n >> 8) & 0xFF) >>> 0; var d = (n & 0xFF) >>> 0; return(a + "." + b + "." + c + "." + d); } 

就像我的站点在下面/上面看到的,与旧的浏览器兼容。

这里是使用types化数组的JavaScript中的ntoa函数的一个版本。

 function ntoa(ipInt) { var buffer = new ArrayBuffer(4); var uint8View = new Uint8Array(buffer); var uint32View = new Uint32Array(buffer); uint32View[0] = ipInt; var ipSegments = []; for (var i = 0; i < uint8View.length; i ++) { ipSegments.push(uint8View[i]); } return ipSegments.join("."); }