public static void main(String[] args) {
String GOOGLE_IP_01= "66.102.0.0,66.249.64.0,64.233.160.0,104.132.0.0,72.14.192.0";
String GOOGLE_IP_02= "66.102.15.255,66.249.95.255,64.233.191.255,104.135.255.255,72.14.255.255";
boolean crawling = false;
long ip = ipToInt("221.142.49.47");
String[] googleIp1 = GOOGLE_IP_01.split(",");
String[] googleIp2 = GOOGLE_IP_02.split(",");
if(googleIp1.length > 0 && googleIp1.length == googleIp2.length) {
for (int i = 0; i < googleIp1.length; i++) {
long googleIp01 = ipToInt(googleIp1[i]);
long googleIp02 = ipToInt(googleIp2[i]);
if (googleIp01 < ip && googleIp02 > ip) {
crawling = true;
break;
}
}
}
System.out.println(crawling);
}
public static Long ipToInt(String ipAddr) {
String[] ipAddrArray = ipAddr.split("\\.");
long num = 0;
for (int i = 0; i < ipAddrArray.length; i++) {
int power = 3 - i;
/*
* i의 값으 범위는 0~255 사이이며, 그 값을 256으로 나눈 나머지 값에
* 256을 power의 값인
* 1~9 사이는 2,
* 10~99 사이는 1,
* 100 이상은 0 의 값에 누승하여 num 값에 더함
*/
num += ((Integer.parseInt(ipAddrArray[i]) % 256 * Math.pow(256, power)));
}
return num;
}
구글에서 크롤링을 하는 ip 대역. 추가될때마다 계속 추가할 예정..
66.102.0.0 - 66.102.15.255 안에 대역이 구글 대역폭이라 그 안에 들어오는 유입건에 대해서는 무효처리하기 위해, 별도 기능 구현.