Regex Tester

IP Adresi Regex: IPv4 ve IPv6 Eşleştirme

IPv4 adreslerini (192.168.1.1) ve IPv6 adreslerini eşleştirmek ve doğrulamak için regex desenleri. CIDR gösterimi ve özel ağ algılamayı içerir.

Verileriniz tarayıcınızdan çıkmaz.

//gm
7 eşleşme
192.168.1.1 10.0.0.255 172.16.0.1 255.255.255.0 8.8.8.8 999.999.999.999 256.1.1.1 1.2.3 0.0.0.0 127.0.0.1
Eşleşme Detayları

IPv4 Adres Regex’i

Yukarıdaki desen yalnızca geçerli IPv4 adresleriyle eşleşir. Test stringlerinden 192.168.1.1, 10.0.0.255, 172.16.0.1, 255.255.255.0, 8.8.8.8, 0.0.0.0 ve 127.0.0.1 ile eşleşir. 999.999.999.999, 256.1.1.1 ve 1.2.3’ü (sadece üç sekizli) reddeder.

Desen Ayrıştırması

Her sekizli, 0-255 aralığını zorlamak için üç yönlü bir alternasyon kullanır:

Alternasyon dalıKapsanan aralıkÖrnek eşleşmeler
25[0-5]250-255250, 255
2[0-4]\d200-249200, 214, 249
[01]?\d\d?0-1990, 99, 192

Basit Desen Neden Başarısız Olur

\d+\.\d+\.\d+\.\d+ çoğu kişinin denediği ilk şeydir. İki yönde başarısız olur:

Geçerli IP adresleri olmayan stringlerle eşleşir. 999.999.999.999 eşleşir çünkü \d+ sayısal değere sınır koymaz.

Daha uzun stringlerin içinde yanlış pozitifler üretebilir. Kelime sınırları olmadan, desen sürüm stringlerinde, Unix zamanlarında ve ondalık sayılarda kısmi parçaları eşleştirir.

CIDR Gösterimi

192.168.1.0/24 gibi CIDR bloklarını da eşleştirmek için, temel desenin sonuna (son \b’den önce) (\/([0-9]|[1-2]\d|3[0-2]))? ekleyin.

IPv6 Deseni

Standart 8 grup tam gösterim için:

([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}

Özel Ağ Algılama

RFC 1918 tarafından tanımlanan üç özel IPv4 aralığı:

AralıkCIDRRegex öneki
A Sınıfı özel10.0.0.0/8^10\.
B Sınıfı özel172.16.0.0/12`^172.(1[6-9]
C Sınıfı özel192.168.0.0/16^192\.168\.

Regex’i Ne Zaman Atlamalı

Kullanıcı tarafından gönderilen tek bir IP adresini doğrulamak için dil yerleşiklerini kullanın:

import ipaddress
try:
    ipaddress.ip_address("192.168.1.1")
    # geçerli
except ValueError:
    # geçersiz
const net = require('net');
net.isIPv4('192.168.1.1'); // true
net.isIPv4('999.1.1.1');   // false