在 CoffeeScript 中,我如何将 IP(标准 IPv4 127.0.0.1)转换为整数?
编辑:这里有很多很好的答案,谢谢大家!
最佳答案
编辑: CoffeeScript
ipStringToInteger = (x) ->
res = 0
(res = res * 256 + Number(y) for y in x.split("."))
res
编译为
var ipStringToInteger;
ipStringToInteger = function(x) {
var res, y, _i, _len, _ref;
res = 0;
_ref = x.split(".");
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
y = _ref[_i];
res = res * 256 + Number(y);
}
return res;
};
一个简短的纯 Javascript 实现是
var ipV4StringToInteger = function(string) {
var parts = string.split(".");
var sum = 0;
for(var i = 0; i < 4; i++) {
var partVal = Number(parts[i]);
sum = (sum << 8) + partVal;
}
return sum;
};
一个好的纯Javascript实现是
var ipV4StringToInteger = function(string) {
var parts = string.split(".");
if(parts.length != 4)
throw new Error("IPv4 string does not have 4 parts.");
var sum = 0;
for(var i = 0; i < 4; i++) {
var part = parts[i];
if(!part.match("^\\d+$"))
throw new Error("Non-digit, non-period character in IPv4 string.");
var partVal = Number(part);
if(partVal > 255)
throw new Error("IPv4 string contains invalid value.");
sum = ((sum << 8) + partVal) >>> 0;
}
return sum;
};
关于javascript - 如何使用 CoffeeScript 将 IPv4 转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393450/