首页 > 编程知识 正文

已知ip地址求网络号和主机号,ip地址 子网掩码 网络地址

时间:2023-05-05 00:39:01 阅读:162742 作者:4664

这段代码有很多需要优化的地方。 小编是为了完成标题的功能而写的,所以没有怎么优化。 请谅解。

package com.lanqiao; import java.util.Scanner; /**IP知道IP地址和子网掩码,并获得相应的网络号和主机号。 *//公共类lm1 {//IP和子网掩码实现类:例如ip:192.168.43.169子网掩码: 255.255.255.0 staticclassdz { iii } //168或255int ip3; //43或255int ip4; //169或0公共int getip1() {return ip1; }publicvoidsetiP1(intIP1 ) {this.ip1=ip1; }public int getIp2 () {return ip2; }publicvoidsetIP2(intIP2 ) {this.ip2=ip2; }public int getIp3() {return ip3; }publicvoidsetip3(intIP3) {this.ip3=ip3; }public int getIp4() {return ip4; }publicvoidSETIP4(intIP4 ) {this.ip4=ip4; }publicstaticintint_byte1(intn,int m ) ) {byte[] b1=new byte[8]; //ip地址的二进制byte[] b2=new byte[8]; //子网掩码二进制byte[] b3=new byte[8]; //网络编号二进制int a=0;//将IP地址转换为二进制for (inti=B1.length-1; i=0; I--}{B1[I]=(byte ) ) n%2); n=n/2; //将子网掩码转换为二进制for (inti=B2.length-1; i=0; I--(B2[I]=(byte ) ) m%2); m=m/2; //网络编号的二进制for(intI=0; i8; I ) (B3 ) I ) byte ) ) B1 ) I ); //网络编号的十进制for(intI=7; i=0; I--}{a=(int ) B3[I]* ) int ) math.pow ) 2,7-I ); }return a; }publicstaticintint_byte2(intn,int m ) {byte[] b1=new byte[8]; //ip地址的二进制byte[] b2=new byte[8]; //子网掩码二进制byte[] b3=new byte[8]; //网络号的二进制byte[] b4=new byte[8]; //子网掩码的二进制取反int a=0;//将IP地址转换为二进制for (inti=B1.length-1; i=0; I--}{B1[I]=(byte ) ) n%2); n=n/2; //将子网掩码转换为二进制for (inti=B2.length-1; i=0; I--(B2[I]=(byte ) ) m%2); m=m/2; //将子网掩码的二进制取为逆for (inti=0; ib2.length; I () if ) B2[I]==1) b4[i]=0; if(B2 ) I )==0) B4 ) I )=1; //主机编号二进制for(intI=0; i8; I ) (B3 ) I ) byte ) ) B1 ) I ) B4 ); //网络编号的十进制for(intI=7; i=0; I--}{a=(int ) B3[I]* ) int ) math.pow ) 2,7-I ); }return a; } publicstaticvoidmain (string [ ] args ) {dz dz1=new dz ); dz dz2=new dz (; sanner scanner=new scanner (system.in; String string1=scanner.nextLine (; String string2=scanner.nextLine (; //请注意,此方法的参数是正则表达式,因此需要对特定字符进行转码。 //例如,表示正则表达式中的任何字符。 因此,如果按.编号进行分割,则为split (). ) /或split (pattern.quote ) ).stringIP1[]=string if(IP1!=null ip1.length==4() dz1.SETI P1 (integer.parseint (ip1 [0] ) ); DZ1.setIP2(integer.parseint ) IP1[1]; DZ1.setip3(integer.parseint ) IP1[2]; dz1.SETI P4 (integer.parseint (ip1 [3] ) ); }stringIP2[]=string2.split((. ); if(IP2!=null ip2.length==4() dz2.SETI P1 (integer.parseint (ip2 [0] ) ); DZ2.setIP2(integer.parseint ) IP2[1]; DZ2.setip3(integer.parseint ) IP2[2]; dz2.SETI P4 (integer.parseint (ip2 [3] ) ); //219.224.3.18255.255.255.248 system.out.println (网络编号: ' int_byte1(DZ1.getip1)、dz2.getIp1) dz2.getIp2 () ).int_byte1) dz2.getIp3)、dz2.getIp3) )、).int_byte1) dz2.getIp4)、dz2.getIp3)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。