>  기사  >  백엔드 개발  >  PHP 정규 표현식 작동: IP 주소 일치

PHP 정규 표현식 작동: IP 주소 일치

王林
王林원래의
2023-06-22 20:15:201363검색

네트워크 통신에서 IP 주소는 매우 중요한 개념입니다. 웹 개발에서는 IP 주소를 운영하고 처리해야 하는 경우가 많습니다. 강력한 웹 프로그래밍 언어인 PHP는 IP 주소를 효과적으로 일치시킬 수 있는 풍부한 정규식 기능을 제공합니다.

이 기사에서는 PHP 정규식을 사용하여 IP 주소를 일치시키는 방법을 소개하고, IP ​​주소 형식, 정규식 구문 및 실제 적용 시나리오를 자세히 설명하고, 독자가 정규식 적용에 대해 더 깊이 이해하도록 돕습니다.

1. IP 주소의 형식

IP 주소는 32비트 이진수로 표현되며 네트워크 통신에서 네트워크 호스트를 고유하게 식별하는 역할을 합니다. 32비트 이진수를 4개의 그룹으로 나누고 각 그룹은 8자리를 가지며 이를 십진수로 변환하면 아래와 같이 공통 IP 주소 형식을 얻을 수 있습니다.

192.168.1.1

여기서 각 숫자 그룹의 범위는 다음과 같습니다. 0-255이며 점 구분 기호 "."로 구분해야 합니다. 또한 IPv6 주소도 존재하지만 이 기사에서는 아직 이에 대해 논의하지 않습니다.

2. 정규식 구문

PHP에서 preg_match() 함수를 사용하여 정규식 일치 작업을 수행합니다. 구문은 다음과 같습니다.

preg_match($pattern, $subject, $matches);

그 중 $pattern은 정규식의 규칙을 나타내고, $subject는 일치할 문자열을 나타내며, $matches는 일치된 결과를 저장하는 데 사용되는 선택적 매개변수입니다.

다음은 정규식을 사용하여 IP 주소를 일치시키는 코드입니다.

$pattern = '/^([1-9]|[1-9]d|1d{2}|2[0-4]d|25[0-5]).([0-9]|[1-9]d|1d{2}|2[0-4]d|25[0-5]).([0-9]|[1-9]d|1d{2}|2[0-4]d|25[0-5]).([0-9]|[1-9]d|1d{2}|2[0-4]d|25[0-5])$/';
$subject = '192.168.1.1';
preg_match($pattern, $subject, $matches);
var_dump($matches);

위 정규식의 규칙은 다음과 같습니다.

  • ^: 문자열의 시작을 나타냅니다.
  • ([1-9] |[1-9] d|1d{2}|2[0-4]d|25[0-5]): 각 숫자 그룹의 값 범위를 나타내며 다음 상황으로 나눌 수 있습니다.

    • 0-9 사이의 숫자
    • 10-99 사이의 숫자
    • 100-199 사이의 숫자
    • 200-249 사이의 숫자
    • 250-255 사이의 숫자
  • .: 점 구분 기호를 나타냅니다.
  • $ : 다음을 나타냅니다. 문자열 끝
3. 실제 응용 시나리오

    사용자의 로그인 IP 주소 기록
웹 응용 프로그램 개발에서 사용자의 로그인 IP 주소를 기록하는 것은 일반적인 작업입니다. PHP 정규식을 사용하여 IP 주소를 일치시키면 사용자의 IP 주소를 효과적으로 확인하고 필터링하여 IP 주소의 유효성과 정확성을 보장할 수 있습니다.

    컴퓨터 네트워크 관리
컴퓨터 네트워크 관리에 있어서 IP 주소도 매우 중요한 내용입니다. PHP 정규식을 사용하여 IP 주소를 일치시키면 네트워크 장치를 관리, 구성 및 모니터링할 수 있습니다.

    데이터베이스 검색
데이터베이스 검색에서 IP 주소도 일반적인 검색 필드입니다. PHP 정규식을 사용하여 IP 주소를 일치시키면 데이터베이스에서 IP 주소 필드를 효과적으로 검색하고 필터링할 수 있습니다.

4. 요약

이 글에서는 PHP 정규식을 사용하여 IP 주소를 일치시키는 방법을 소개하고 IP 주소 형식, 정규식 구문 및 실제 적용 시나리오에 대해 자세히 설명합니다. 정규식의 일반적인 방법과 기술을 이해함으로써 독자는 PHP 정규식 적용에 대해 더 깊이 이해할 수 있습니다.

위 내용은 PHP 정규 표현식 작동: IP 주소 일치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.