我正在编写一个程序,它从用户的IP地址和IP地址获取并显示它们之间的IP地址列表。例如,如果用户给出10.0.0.1和10.0.0.5,那么我将在这两者之间显示五个IP地址。那是在我的脑海未来目前的解决方案是:在两个IP地址之间获取IP地址列表
- 将所有IP地址的列表,然后找得到的IP地址列表
- 使用嵌套循环
什么解决方案应我采用这些(或建议更好的解决方案)?对于第一种解决方案,IP地址表/列表的链接是什么?
JavaScript或Java方面的解决方案是什么?
我正在编写一个程序,它从用户的IP地址和IP地址获取并显示它们之间的IP地址列表。例如,如果用户给出10.0.0.1和10.0.0.5,那么我将在这两者之间显示五个IP地址。那是在我的脑海未来目前的解决方案是:在两个IP地址之间获取IP地址列表
什么解决方案应我采用这些(或建议更好的解决方案)?对于第一种解决方案,IP地址表/列表的链接是什么?
JavaScript或Java方面的解决方案是什么?
先用.
分裂的IP地址。从第一个IP地址开始,将第四部分增加到255,然后在第三部分中加1,并将第四部分设为1.直到到达IP地址。
10.0.10.10
- >00001010 00000000 00001010 00001010
- >167774730
10.1.45.1
- >00001010 00000001 00101101 00000001
- >167849217
11111111
和00000000
。这就是全部。
列出所有IP地址,然后查找您需要的是过度杀毒。另外,我相信你甚至可以存储该列表而不必购买一些额外的硬盘驱动器。
只需使用嵌套循环并生成要查找的IP地址即可。
如果你知道足以让(从网络或从文件系统或用户输入)的地址,你可以测试与减法地址本身并获得IP地址的数量就在这里。
这是简化的,但你会得到它,如果你知道地址:000044-000002 = 000042
。
您需要列举一些关于目标网络的信息,但在网络掩码中有描述。 – L0j1k
“点”写作是为人类。对于电脑,它是一个4字节的数字。所以把它解析成一个数字。然后,通过简单地增加一个数字直到达到边界并将其格式化为输出,您将获得该范围内的所有地址。
我尝试在an updated jsFiddle,最后我来到了下面的解决方案。以下代码适用于所有IP地址。你必须提供十六进制的开始和结束IP地址(因为它很容易,我没有为它编写代码)。
var startIp = 0x0A000001,
endIp = 0x0A000F05;
var temp, list = [],str;
for(var i=startIp ; i <= endIp ; i++){
temp = (i).toString(16);
str ='';
if(temp.length == 7){
temp = "0"+temp;
}
for(var k=temp.length-1; k >= 0 ; k-=2){
str = parseInt(temp[k-1] + "" + temp[k], 16) +"." + str ;
}
document.write(temp + " " + str+ "<br>");
list.push(str.substring(0, str.length-1));
}
?
你为什么要这样?是否用于子网扫描? –
是的,我在扫描子网。为此我有一个脚本告诉来自IP地址,现在我想将所有这些IP保存在不同的行中 –
因此,如果这是在浏览器中运行,它可以用来扫描客户端内部网络? –