Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package router;
- import java.util.ArrayList;
- public class IPAddress implements Comparable<IPAddress>{
- private int[] ipCim;
- public IPAddress(int[] tomb){
- ipCim = new int[4];
- for(int i = 0; i < 4; ++i){
- ipCim[i] = tomb[i];
- }
- }
- private int[] getIpCim(){
- return ipCim;
- }
- public String toString(){
- return ipCim[0] + "." + ipCim[1] + "." + ipCim[2] + "." +ipCim[3];
- }
- public static IPAddress fromString(String s) throws IPFormatException{
- int[] sv = new int[4];
- String[] darabok = s.split("\\.");
- try{
- for(int i = 0; i < 4; ++i){
- sv[i] = Integer.parseInt(darabok[i]);
- }
- }
- catch(Exception e){
- throw new IPFormatException(s);
- }
- boolean jo_e = true;
- for(int i = 0; i < 4; ++i){
- if( sv[i] < 0 || sv[i] > 255){
- jo_e = false;
- }
- }
- if(jo_e){
- return new IPAddress(sv);
- }else{
- throw new IPFormatException(s);
- }
- }
- @Override
- public boolean equals(Object o){
- if(o instanceof IPAddress){
- IPAddress ip = (IPAddress) o;
- return ugyanaz_e(this,ip);
- }else{
- return false;
- }
- }
- private boolean ugyanaz_e(IPAddress seged1, IPAddress seged2){
- int[] ip1 = seged1.getIpCim();
- int[] ip2 = seged2.getIpCim();
- double sv1 = 0;
- double sv2 = 0;
- int x = 1000000000;
- for(int i = 0; i < 4; ++i){
- if(i > 0){
- x = x/1000;
- }
- sv1 += (double)ip1[i]*x;
- sv2 += (double)ip2[i]*x;
- }
- return sv1==sv2;
- }
- @Override
- public int hashCode(){
- int sv = 0;
- for(int i = 0; i < 4; ++i){
- sv+= ipCim[i];
- }
- return sv;
- }
- @Override
- public int compareTo(IPAddress o) throws NullPointerException, ClassCastException{
- if(o == null){
- throw new NullPointerException();
- }
- if(o instanceof IPAddress){
- int[] ip1 = ipCim;
- IPAddress ip = o;
- int[] ip2 = ip.getIpCim();
- double sajat = 0;
- double param = 0;
- int x = 1000000000;
- for(int i = 0; i < 4; ++i){
- if(i > 0){
- x = x/1000;
- }
- sajat += (double)ip1[i]*x;
- param += (double)ip2[i]*x;
- }
- if(param < sajat){
- return 1;
- }
- if(param == sajat){
- return 0;
- }
- if(param > sajat){
- return -1;
- }
- }
- throw new ClassCastException();
- }
- public boolean insideRng(IPAddress sv1, IPAddress sv2){
- if((sv1.compareTo(this) == -1 ||sv1.compareTo(this) == 0 )&&
- (sv2.compareTo(this) == 1 || sv2.compareTo(this)== 0)
- ){
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement