IPアドレスが指定されたセグメント内にあるかどうかを判断する
967 ワード
最近では,IPアドレスが特定のセグメントにあるか否かを判断する機能が用いられている.必要なものは次のとおりです.
入力:所与のIPアドレス セグメント開始IP セグメント終了IP
出力:所与のIPが所与のセグメントの範囲内にあるかどうか.
考え方:
最初はIPをsplitして、ネットセグメントの開始IPと終了IPと1つずつ比較したいと思っていましたが、書き終わったら細部の問題が多すぎることに気づきました.後でmysqlの inet_aton(ip)法はIPを数値形式に変換して比較し,ネット上でよく使われる方法をいくつか探したが,確かにそうできることが分かった.
Solution:
参照先: mysqlでinet_aton()関数 Javaでは、IPアドレスが1つのセグメント内にあるか否かを判断する .
入力:
出力:
考え方:
最初はIPをsplitして、ネットセグメントの開始IPと終了IPと1つずつ比較したいと思っていましたが、書き終わったら細部の問題が多すぎることに気づきました.後でmysqlの inet_aton(ip)法はIPを数値形式に変換して比較し,ネット上でよく使われる方法をいくつか探したが,確かにそうできることが分かった.
Solution:
/**
* if true: IP in the Segment
* else: IP not in the Segment
*/
private boolean ipInSegment(String curIP, String fromIP, String toIP) {
String curSeg[] = curIP.split("\\.", -1);
String fromSeg[] = fromIP.split("\\.", -1);
String toSeg[] = toIP.split("\\.", -1);
int iCurIP = 0;
int iFromIP = 0;
int iToIP = 0;
//turn ip to int
for(int i=0; i=iFromIP && iCurIP<=iToIP;
}
参照先: