subnet etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
subnet etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27 Temmuz 2016 Çarşamba

Bir IP adresinin verilen Subnet içinde olup olmadığını Perl script yazarak anlamak.

Merhaba,

Verilen bir ip adresinin verilen bir subnet içinde olup olmadığını anlamak için basit bir perl scripti.

$ip = 192.168.10.11
$subnet = 192.168.10.0/24

sub checkip {
        my ($ip, $subnet) = @_;
        my $result = 0;

        my @iparr = split(/\./, $ip);
        my $ipval = $iparr[0] * 2**24 + $iparr[1] * 2**16 + $iparr[2] * 2**8 + $iparr[3];

        my @temparr = split(/\//, $subnet);
        my $ipsub = $temparr[0];
        my $netmask = $temparr[1];

        my @ipsubarr = split(/\./, $ipsub);
        $ip2val = $ipsubarr[0] * 2**24 + $ipsubarr[1] * 2**16 + $ipsubarr[2] * 2**8 + $ipsubarr[3];

        if( $ipval >> (32-$netmask) == $ip2val >> (32-$netmask) ) {
            $result = 1;
        }
        return $result;
}

Sonuç değeri olarak $result=1 geldiğinde ip adresinin ilgili subnete ait olduğunu anlamış oluruz.