Invalid IP address.
程序:import java.util.Scanner;import java.util.regex.Pattern;public class First { //IP测试 public static String IPTest(String str){ String[] s=str.split("//.");//注意split中以.分割是加// String s0=s[0]; if(s0.equals("127")||s0.equals("0")||s0.equals("255")) return "Invalid IP Address"; for(int i=0;i<s.length;i++){ if(Integer.parseInt(s[i])>255) return "Invalid IP Address"; } return null; } //子网掩码测试 public static String YanMaTest(String str){ if(str.equals("255.255.255.255")||str.equals("0.0.0.0")) return "Invalid netmask address."; String[] s=str.split("//."); String regex="0?1+0+1+0?"; Pattern pattern=Pattern.compile(regex); for(int i=0;i<3;i++){ s[i]=Integer.toBinaryString(Integer.parseInt(s[i])); boolean flag=pattern.matcher(s[i]).find(); if(flag) return "Invalid netmask address."; } return null; } //逻辑与 public static String AND(String str1,String str2){ String[] s1=str1.split("//."); String[] s2=str2.split("//."); String str=""; for(int i=0;i<s1.length;i++){ s1[i]=Integer.toBinaryString(Integer.parseInt(s1[i])); s2[i]=Integer.toBinaryString(Integer.parseInt(s2[i])); int count1=8-s1[i].length(); for(int j=0;j<count1;j++){ s1[i]="0"+s1[i]; } int count2=8-s2[i].length(); for(int j=0;j<count2;j++){ s2[i]="0"+s2[i]; } char[] ch1=s1[i].toCharArray(); char[] ch2=s2[i].toCharArray(); char[] ch=new char[8]; int count=0; for(int j=0;j<8;j++){ if(ch1[j]=='1'&&ch2[j]=='1') ch[j]='1'; else ch[j]='0'; } for(int j=0;j<8;j++){ count+=ch[j]*Math.pow(2, 7-j); } if(i==3) str=str+String.valueOf(count); else str=str+String.valueOf(count)+"."; } return str; }//主函数: public static void main(String[] args){ System.out.PRintln("输入:"); Scanner sc=new Scanner(System.in); String myIP=""; String netmask=""; String otherIP=""; String result=""; int count=0; int num=0; while(sc.hasNext()){ count+=1; if(count==1){ myIP=sc.next(); String str=IPTest(myIP); if(str!=null){ System.out.println(str); return ; } } if(count==2){ netmask=sc.next(); String str=YanMaTest(netmask); if(str!=null){ System.out.println(str); return; } } if(count==3) num=sc.nextInt(); if(count>3){ otherIP=sc.next(); String str=IPTest(otherIP); if(str!=null){ result+="Invalid IP address"+System.getProperty("line.separator"); } else{ String myAnd=AND(myIP,netmask); String otherAnd=AND(otherIP,netmask); if(myAnd.equals(otherAnd)) result+="let's rock"+System.getProperty("line.separator"); else result+="not you"+System.getProperty("line.separator"); } } if(count==3+num){ System.out.println("输出:"); break; } } System.out.println(result); } }新闻热点
疑难解答