派生给定起始和结束IP地址的网络掩码
Derive Netmask given start and end IP addresses
我需要用javascript计算给定子网中块的起始和终止ip地址的网络掩码。我利用了这个答案https://stackoverflow.com/a/8872819/664479和
具有ac164980
的startAddress和ac16498e
的endAddress
var scope = ipScope;
var s = parseInt("0x"+startAddress ,16);
var e = parseInt("0x"+endAddress ,16);
var m = parseInt("0xFFFFFFFF",16);
var nm = ""+(m ^ s ^ e);
我预计FFFFFFC0
,但得到-15
我哪里错了?
您需要将结果转换回末尾的十六进制字符串(decimalToHexString函数取自:https://stackoverflow.com/a/697841/932282):
function decimalToHexString(number)
{
if (number < 0)
{
number = 0x100000000 + number;
}
return number.toString(16).toUpperCase();
}
var startAddress = "ac164980",
endAddress = "ac16498e";
var s = parseInt("0x"+startAddress, 16);
var e = parseInt("0x"+endAddress, 16);
var m = parseInt("0xFFFFFFFF", 16);
var nm = decimalToHexString(m ^ s ^ e);
结果是FFFFFFF1
。
这里实际上有两个问题。第一个是使用startIP和endIP的计算假设。
它实际上应该是startIP和endIP所在的子网的scopeSize
。
第二个是返回的负值的表示。已修复:
var nm = (0xFFFFFFFF + (-1 ^(scope-1)) +1).toString(16).toUpperCase();
相关文章:
- 跟踪用户点击Adsense广告的IP地址
- 用于更改IP地址的输入框
- 获取docker容器中运行的节点应用程序的IP地址
- 如何从ipify函数返回ip地址,以便在其他函数中使用
- 使用网络服务器的IP地址而不是域名对其进行屏幕抓取
- 除了用于跟踪的IP地址之外,是否有任何计算机特定信息
- 使用 IP 地址和超链接对数据表进行排序
- 如果通过域名或IP地址导航到,则进行检测
- 如何在nodejs中将主机名解析为ip地址
- 如何使用javascript确定登录用户的浏览器版本和IP地址
- 我怎样才能重写这个函数,这样我就不会'不必显式地键入范围内的每个IP地址
- 获取客户端机器's使用Asp/Javascript的精确IP地址(非公共IP)
- Linkedin开发者:[未经授权].IP地址不匹配
- 为什么可以't我得到连接客户端's的ip地址在我的服务器上运行Node.js+Openshift托管的W
- 我能得到访问我网站的当地公共ip地址吗
- 覆盖批处理IP地址以查找位置
- Asp.NetMVC 3:使用Javascript的客户端IP地址
- 使用Safari浏览器的Javascript的局域网本地IP地址
- 基于IP地址重定向
- 如何从Adobe Interactive表单中获取客户端机器的IP地址