|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Stephen V Avdeyev 2:5090/44 25 Mar 2002 11:04:25 To : Proext Subject : IP и маски -------------------------------------------------------------------------------- Tuesday March 19 2002 12:10, PROext wrote to All: P> Есть адрес в формате address/masklen, например: P> 195.230.128.0/19 P> Как наиболее быстро определить, попадает ли мой адрес (например, P> 195.230.131.18) в эту область? sub isinnetwork () { my ($an_ip, $a_net) = @_; if ($a_net !~ /\//) { return ($an_ip eq $a_net); } my ($n_addr, $sfx) = split /\//, $a_net; $sfx = 32 unless defined $sfx; my $imask = 0xFFFFFFFF ^ ((1 << (32 - $sfx)) -1); my $p_ip = unpack('N',pack('C4', split /\./,$an_ip)); my $p_net = unpack('N',pack('C4', split /\./,$n_addr)); return ($p_ip & $imask) == ($p_net & $imask); } За сим откланиваюсь, Stephen [Argus team] ... http://www.ktk.ru/ - "Крастелеком" /телекоммуникационные технологии --- GoldED/W32 3.00.Beta4+ (http://fido.ktk.ru - Красноярское ФИДО) * Origin: AFRICA Online (2:5090/44) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/18383c9ef697.html, оценка из 5, голосов 10
|