Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取两个IP地址之间的IP地址列表_Java_Javascript_Ip_Ipv4 - Fatal编程技术网

Java 获取两个IP地址之间的IP地址列表

Java 获取两个IP地址之间的IP地址列表,java,javascript,ip,ipv4,Java,Javascript,Ip,Ipv4,我正在编写一个程序,从用户的IP地址和IP地址中获取,并显示它们之间的IP地址列表。例如,如果用户给出10.0.0.1和10.0.0.5,那么我将显示这两个IP地址之间的五个IP地址。我想到的当前解决方案是: 要获得所有IP地址的列表,然后查找结果IP地址列表 使用嵌套循环 我应该在这两者之间采取什么解决方案(或建议更好的解决方案)?对于第一个解决方案,IP地址表/列表的链接是什么 JavaScript或Java的解决方案是什么?如果您知道足够多的地址(从网络、文件系统或用户输入),您可以使用减

我正在编写一个程序,从用户的IP地址和IP地址中获取,并显示它们之间的IP地址列表。例如,如果用户给出10.0.0.1和10.0.0.5,那么我将显示这两个IP地址之间的五个IP地址。我想到的当前解决方案是:

  • 要获得所有IP地址的列表,然后查找结果IP地址列表
  • 使用嵌套循环
  • 我应该在这两者之间采取什么解决方案(或建议更好的解决方案)?对于第一个解决方案,IP地址表/列表的链接是什么


    JavaScript或Java的解决方案是什么?

    如果您知道足够多的地址(从网络、文件系统或用户输入),您可以使用减法测试地址本身,并在那里获得IP地址数


    这是简化的,但是如果您知道地址,您将得到它:
    000044-000002=000042

    如果您知道足够多的地址(从网络或文件系统或用户输入),您可以使用减法测试地址本身,并在那里获得IP地址数


    这是简化的,但是如果您知道地址,您将得到它:
    000044-000002=000042
    首先使用
    拆分IP地址。从第一个IP地址开始,将第四部分增加到255,然后将1添加到第三部分,并将第四部分设置为1。直到您到达to IP地址

    • IP地址字节->位->Int32
    • 从:
      10.0.10.10
      ->
      00001000000000 000010010 00001010
      ->
      167774730
    • 至:
      10.1.45.1
      ->
      00001000000001 00101100000001
      ->
      167849217
    • 从到开始计数,只需检查不需要的字节,即
      11111111
      00000000

    仅此而已。

    首先使用
    拆分IP地址。从第一个IP地址开始,将第四部分增加到255,然后将1添加到第三部分,并将第四部分设置为1。直到您到达to IP地址

    • IP地址字节->位->Int32
    • 从:
      10.0.10.10
      ->
      00001000000000 000010010 00001010
      ->
      167774730
    • 至:
      10.1.45.1
      ->
      00001000000001 00101100000001
      ->
      167849217
    • 从到开始计数,只需检查不需要的字节,即
      11111111
      00000000
    就这些。

    点——书写是为人类准备的。对于计算机,它是一个4字节的数字。所以把它解析成一个数字。然后,您只需增加一个数字,直到达到边界,就可以获得该范围内的所有地址,并将其重新格式化以供输出。

    点-书写是为人类编写的。对于计算机,它是一个4字节的数字。所以把它解析成一个数字。然后,您只需增加一个数字,直到达到边界,然后将其重新格式化以供输出,就可以得到该范围内的所有地址。

    我正在进行试验,最后得出了下面的解决方案。以下代码适用于所有IP地址。您必须提供一个十六进制的起始和结束IP地址(因为它很容易,我没有为它编写代码)

    var startIp=0x0A000001,
    endIp=0x0A000F05;
    变量temp,list=[],str;
    对于(var i=startIp;i=0;k-=2){
    str=parseInt(temp[k-1]+“”+temp[k],16)+“+str;
    }
    写(temp+“”+str+“
    ”); list.push(str.substring(0,str.length-1)); } ?
    我在进行试验,最后得出了下面的解决方案。以下代码适用于所有IP地址。您必须提供一个十六进制的起始和结束IP地址(因为它很容易,我没有为它编写代码)

    var startIp=0x0A000001,
    endIp=0x0A000F05;
    变量temp,list=[],str;
    对于(var i=startIp;i=0;k-=2){
    str=parseInt(temp[k-1]+“”+temp[k],16)+“+str;
    }
    写(temp+“”+str+“
    ”); list.push(str.substring(0,str.length-1)); } ?

    您为什么想要这个?是用于子网扫描吗?是的,我正在扫描子网。为此,我有一个脚本,告诉从和到IP,现在我想把所有这些IP保存在单独的行中。如果在浏览器中运行,它可以用来扫描客户端的内部网络?也可以有一些外部网络。为什么要这样做?是用于子网扫描吗?是的,我正在扫描子网。为此,我有一个脚本,它告诉从和到IP,现在我想将所有这些IP保存在单独的行中。如果要在浏览器中运行,它可以用来扫描客户端内部网络?也可能有一些外部网络。您需要列举一些有关目标网络的信息,但这在网络掩码中有描述。您需要列举一些有关目标网络的信息,但在网络掩码中有描述。否。0表示网络的“名称”。顺便说一下,255是用于广播的,所以它也不可用。但这不是op问题的一部分。他想要的是地址,而不是“可用”地址。网络名称是否为.0取决于子网掩码。如果掩码是255.255.0.0,那么网络的名称是x.y.0.0,但x.y.2.0只是一个普通地址。是的,阿米尔,拆分是一个解决方案,但我想知道有一个有序IP地址列表,然后通过索引或查询之间的DB来获取IP列表。考虑一个排序的IPS列表,如100.0.0.-0.0.0.1-0.0.0.2-2-0.0.0.3等,因此查询之间将是EasySO,您应该使用IP地址的32位值。每个IP有4个字节,所以通过放置它们的比特,我们可以创建一个32位巫师是可索引的和可查询的。我希望避免嵌套循环和多个if-else语句。谢谢。0表示网络的“名称”。顺便说一下,255是广播用的,所以这不是u
    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));
    }
    
    ?