[PHP] 사설 ip, loopback 등을 제외하고 공인 ip만 필터링 (filtering private, reserved ip address)
PHP 2022. 4. 13. 12:02
filter_var() 함수 사용으로 간단하게 가능.
<?php
$a = [
'0.0.0.0',
'127.0.0.1',
'192.168.0.1',
'172.16.0.1',
'255.255.255.0',
'8.8.8.8'
];
foreach ($a as $ip) {
$valid = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) === false ? 'X' : 'O';
printf("%s = %s\n", $ip, $valid);
}
// 출력
0.0.0.0 = X
127.0.0.1 = X
192.168.0.1 = X
172.16.0.1 = X
255.255.255.0 = X
8.8.8.8 = O
[참고]