정규식 하나만 봐주세요 ^^ 정보
정규식 하나만 봐주세요 ^^본문
접속 ip가 proxy 접속인지 확인하려고 하는데, 정규식이 ..ㅠ..ㅠ...
212.11.123.43와 같이 숫자와 . 으로만 되어 있다는거 한번에 확인하고 싶어요.
제가 정규식이 약해서...ㅠ..ㅠ...
$ip = getRemoteInfo();
// host-addr에 값에 . 이나 숫자가 아닌 문자가 있으면 대부분 proxy 접속 입니다.
if ($ip[1] && host-addr 값에 문자가 있는 경우)
exit;
http://www.php.net/manual/fr/function.gethostbyaddr.php
function getRemoteInfo () {
$proxy="";
$IP = "";
if (isSet($_SERVER)) {
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$IP = $_SERVER["HTTP_X_FORWARDED_FOR"];
$proxy = $_SERVER["REMOTE_ADDR"];
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
$IP = $_SERVER["HTTP_CLIENT_IP"];
} else {
$IP = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$IP = getenv( 'HTTP_X_FORWARDED_FOR' );
$proxy = getenv( 'REMOTE_ADDR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$IP = getenv( 'HTTP_CLIENT_IP' );
} else {
$IP = getenv( 'REMOTE_ADDR' );
}
}
if (strstr($IP, ',')) {
$ips = explode(',', $IP);
$IP = $ips[0];
}
$RemoteInfo[0]=$IP;
$RemoteInfo[1]=@GetHostByAddr($IP);
$RemoteInfo[2]=$proxy;
return $RemoteInfo;
}
212.11.123.43와 같이 숫자와 . 으로만 되어 있다는거 한번에 확인하고 싶어요.
제가 정규식이 약해서...ㅠ..ㅠ...
$ip = getRemoteInfo();
// host-addr에 값에 . 이나 숫자가 아닌 문자가 있으면 대부분 proxy 접속 입니다.
if ($ip[1] && host-addr 값에 문자가 있는 경우)
exit;
http://www.php.net/manual/fr/function.gethostbyaddr.php
function getRemoteInfo () {
$proxy="";
$IP = "";
if (isSet($_SERVER)) {
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$IP = $_SERVER["HTTP_X_FORWARDED_FOR"];
$proxy = $_SERVER["REMOTE_ADDR"];
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
$IP = $_SERVER["HTTP_CLIENT_IP"];
} else {
$IP = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$IP = getenv( 'HTTP_X_FORWARDED_FOR' );
$proxy = getenv( 'REMOTE_ADDR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$IP = getenv( 'HTTP_CLIENT_IP' );
} else {
$IP = getenv( 'REMOTE_ADDR' );
}
}
if (strstr($IP, ',')) {
$ips = explode(',', $IP);
$IP = $ips[0];
}
$RemoteInfo[0]=$IP;
$RemoteInfo[1]=@GetHostByAddr($IP);
$RemoteInfo[2]=$proxy;
return $RemoteInfo;
}
댓글 전체
아이피의 정규식은 /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/ 면 될 것 같은데요...

감사합니다. 몇가지 proxy 서버 접속관련 팁을 만들어서 공개할께요 ^^