ip대역 (ip범위) 확인하려면?
본문
예를 들어 ip 대역이 85.208.0.0 - 85.209.255.255 사이인 경우
saudi 라고 표시하려는데
$bw = array("85.208.0.0","85.209.255.255");
$ip = "85.208.96.4";
if($ip > $bw[0] && $ip < $bw[1]) echo "saudi"
이렇게 하면 숫자가 아니다보니 판별을 못 하더라구요.
이런 경우엔 어떤 식으로 대역폭을 확인할 수 있을까요?
답변 3
방법이야 여러가지있겠지만 지금 당장 제가 생각하는것은
따로 때서 비교하는 방법이 생각이 나네요
$ip = explode('.', $_SERVER['REMOTE_ADDR']);
if($ip[0] == 85 && ($ip[1] == 208 || $ip[1] == 209) && $ip[2] <= 255 && $ip[3] <= 255){
echo 'saudi';
}
생각난대로 적은거라 if문이 살짝 지저분하네요
$bw = array("85.208.0.0","85.209.255.255");
$ip = str_replace(".", "", "85.208.96.4");
$s = str_replace(".", "", $bw[0]);
$e = str_replace(".", "", $bw[1]);
if($ip > $s && $ip < $e) echo "saudi"
.을 다 제거해서 숫자인 것처럼 변환해서 하면 되지 않을까요?
ip 에는 대역폭이 있습니다
※ 0은 0~255 범위
1. A class 255.0.0.0
2. B class 255.255.0.0
3. C class 255.255.255.0
A class 는 국가범위로 할당
B class 는 국가(작은)나 기관 범위로 할당
C class 는 기관 범위로할당
D class는 기관/개인
보통 이렇게 범주를 정하고
127.0.0.0
의 범위는 localhost
168.192.0.0 은 내부망
172.0.0.0 도 내부망
형태로 할당하는것으로 알고있습니다.
따라서 국가로 할당/찾으려면 IP값을 explode를 통해서 잘라서
해당 범위에 해당되는 내용을 찾으시면됩니다.
https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/infoboard/stats/ipCurrent.jsp
여기에 엑셀을 다운받아 db화 시켜서 범위 매핑가능하겠죠