Tanımlı bitiş adresi tanımlı başlangıç ​​adresinden IP adresini artıran bir PHP komut dosyası yapmak isteyen

1 Cevap php

Ben up2long ve long2ip gibi fonksiyonları inşa PHP kullanarak ilk ondalık yazıma IP adreslerini dönüştürerek kolayca yapabilirsiniz biliyorum. Ben sadece bir egzersiz olarak standart IP adresi gösterimini kullanarak aynı şeyi yapmaya muktedir olmak istiyorum.

Düşünüyorum sorun şöyle: Bir başlangıç ​​IP adresi, 192.168.1.100 söylüyorlar, ve bitiş IP adresi alındığında, 201.130.22.10 söylüyorlar. Bu aralıktaki tüm adres numaralarını yazdıran program yapmak (192.168.1.100, 192.168.1.101, ..., 201.130.22.9, 201.130.22.10).

Ben gitmek için belki yolu başlangıç ​​adresinin ilk sekizli biten adresinin ilk sekizli eşleşen kadar while durumu içinde yuvalanmış bir for döngü yapmak olacağını düşünüyordum. Program bitiş adresini ulaşır ve bitmiş kadar Sonra böylece ikinci sekizli ve için kod aynı blok yürütmek.

Ben sadece benim düşünce ve yazarken veya kod kadar şık olmaktan olması oldukça mümkündür bu yüzden son zamanlarda program öğrenmeye başladı. Eğer bu olsaydı, bunu nasıl yapardınız?

1 Cevap

Foto: Bu gibi bir şey

<?php

// works only for valid range
$start_ip = '10.0.0.1';
$end_ip = '10.0.20.1';

$start_arr = explode('.',$start_ip);
$end_arr = explode('.',$end_ip);

while($start_arr <= $end_arr)
{
    echo implode('.',$start_arr) . '<br>';

    $start_arr[3]++;
    if($start_arr[3] == 256)
    {
    	$start_arr[3] = 0;
    	$start_arr[2]++;
    	if($start_arr[2] == 256)
    	{
    		$start_arr[2] = 0;
    		$start_arr[1]++;
    		if($start_arr[1] == 256)
    		{
    			$start_arr[1] = 0;
    			$start_arr[0]++;
    		}
    	}
    }
}

?>