<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이 부분은 기사의 내용과 관련이 없습니다.,일부를 배치 할 수 있습니다PHP주석 또는 관련없는 코드</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"읽기에 오신 것을 환영합니다PHP지도 시간!"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n--------------------------------------------------\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
사용 방법preg_match확인할 기능IP주소,형식이 정확하고 효과적인지 확인하십시오?
존재하다PHP가운데,`preg_match`함수는 정규 표현식 일치를위한 매우 강력한 도구입니다.。사용자 입력을 확인 해야하는 경우IP주소是否格式正确时,`preg_match`이 작업은 빠르게 완료 될 수 있습니다。本文将详细讲解사용 방법它验证IPv4그리고IPv6주소。
</span><span><span class="hljs-comment">### 1. IPv4주소验证</span></span><span>
IPv4주소由四段数字组成,각 번호의 범위는 다음과 같습니다</span><span><span class="hljs-number">0</span></span><span>도착하다</span><span><span class="hljs-number">255</span></span><span>,가운데间用点号分隔,예를 들어:</span><span><span class="hljs-number">192.168</span></span><span>.</span><span><span class="hljs-number">0.1</span></span><span>。为了确保格式그리고有效性,우리는 다음과 같은 정규 표현을 사용할 수 있습니다:
```php
</span><span><span class="hljs-variable">$ipv4_pattern</span></span><span> = </span><span><span class="hljs-string">"/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$/"</span></span><span>;
</span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-string">"192.168.1.100"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$ipv4_pattern</span></span><span>, </span><span><span class="hljs-variable">$ip</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv4주소格式正确"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv4주소格式不正确"</span></span><span>;
}
</span></span>
설명하다:
25 [0-5] 경기 250-255
2 [0-4] [0-9] 경기 200-249
1 [0-9] {2} 일치 100-199
[1-9]? [0-9] 경기 0-99
((...) \.) {3} ... 4 개의 숫자가 있고 중간이 점으로 분리되어 있는지 확인하십시오.
IPv6 주소 형식은 각각 콜론으로 분리 된 8 세트의 16 진수로 구성된 더 복잡합니다. 간단한 정규 표현의 예는 다음과 같습니다.
<span><span><span class="hljs-variable">$ipv6_pattern</span></span><span> = </span><span><span class="hljs-string">"/^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/"</span></span><span>;
</span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-string">"2001:0db8:85a3:0000:0000:8a2e:0370:7334"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$ipv6_pattern</span></span><span>, </span><span><span class="hljs-variable">$ip</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv6주소格式正确"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv6주소格式不正确"</span></span><span>;
}
</span></span>
IPv4와 IPv6을 모두 확인하려면 IP 검증 기능이 내장 된 Filter_var 함수를 사용할 수 있습니다.
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$ip</span></span><span>, FILTER_VALIDATE_IP)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IP주소有效"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IP주소无效"</span></span><span>;
}
</span></span>
사용자 입력을 처리 할 때는 이전 및 후속 공간으로 인한 일치 실패를 피하기 위해 항상 공간 및 유효하지 않은 문자를 제거하는 데주의를 기울입니다.
<span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$ip</span></span><span>);
</span></span>
다수의 IP 주소를 배치 검증하려면 루프와 preg_match를 결합하여 각 입력을 효율적으로 확인할 수 있습니다.
정확한 정규 표현식과 결합 된 preg_match를 사용하면 IP 주소 형식이 정확하고 유효한지 확인할 수 있습니다. IPv4의 경우 초점은 수 범위 및 세그먼트 번호에 있습니다. IPv6의 경우 중점은 16 진 그룹과 결장 분리에 중점을 둡니다. 이러한 기술을 마스터하면 네트워크 주소를 처리 할 때 PHP 프로그램이 더 안전하고 신뢰할 수있게 될 수 있습니다.
<span></span>