2011-05-03 21 views
35

Regex ile yeni biriyim ve bir dizenin IP adresi olup olmadığını bulmak için preg_match işlevini kullanmak istiyorum.Bir IP adresiyle eşleşen Regex

Örneğin, $string = "45.56.78.222" veya benzeri bir şey varsa, preg_match($regex, $string) doğru döndürülmelidir. Peki, $regex ne olmalı?

+2

İlk önce Google'a bir deneme yaptınız mı? http://www.regular-expressions.info/regexbuddy/ipaccurate.html –

+4

'45.56.78.888' bir IP adresi değil. – kapa

+0

@bazmegakapa Evet, fark ettim ki, bunu rastgele yazdım: D ama düşündüğüm noktayı aldınız;) – ibrahim

cevap

105

Eğer gerçekten bir regex istiyorum yaparsanız

$valid = filter_var($string, FILTER_VALIDATE_IP); 

olsa :) gerekmez zaman bir regex kullanmayın ...

$valid = preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\z/', $string); 

regex ancak sadece doğrular format, herhangi bir sekizli için maksimum işaretsiz bir bayt veya 255 için maks.

IPv6 gerekli olmasının nedeni budur - IPv4 adresi yalnızca 32bit uzundur ve internet popüler :) olduğunu

+17

+1 Teşekkürler – kapa

+0

Filtre_var :: 1 as IP için çalışıyor mu? İyi IP regex için – super

+1

> http://stackoverflow.com/questions/9165922/regex-for-ip-address/20270082#20270082 – Alban

9
/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ 

(değil bir IP adresidir bir dizeyi içeren yapar) sizin örneğin yapmalıdır. Ve tabi ki, sadece bir IPv4 adresi.

+0

@alex: Sonra 999.999.999.999 da geçerli IP olacak sonra !! –

+0

@PratikCJoshi: (Yanıtımdan yıllar sonra düzenlenmiş olan) asıl soru, her biri 3 karaktere kadar dört noktaya ayrılmış sayının herhangi bir dizisiyle eşleşecek bir normal ifadeyi sormuştu ... –

+0

Bu oldukça basit ama kimse Yanlış IP adresi. Lütfen cevap olarak da geçerli bir IP adresi Regex eklemeyi düşünün. Regex for ** Valid ** IP adresini alacaklarını düşünerek bu sayfaya gelenleri görün, ancak bu Regex'i almadılar. "Filter_var" için –

4
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ 

Bu Menzil herhangi birinden yüksek 255'ten ise mükemmel Aralığı dahil kontrol edecektir 4.

İlgili konular