Вам нужны разделители вокруг регулярного выражения:
if( preg_match('/\d+\.\d+\.\d+\.\d+/', $host) ) {
В этом случае я использовал /
, что довольно стандартно.Но вы можете использовать и другие символы:
if( preg_match('@\d+\.\d+\.\d+\.\d+@', $host) ) {
A разделитель может быть любым не алфавитно-цифровым, без обратной косой черты, без пробела.в вашем регулярном выражении вы пытаетесь сопоставить IP-адрес, вы можете попробовать это вместо этого:
$IP = "198.168.1.78";
if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)) {
echo "Your IP address is ok.";
} else {
echo "Wrong IP address.";
}