كيف يمكنني التحقق مما إذا كانت أرقام IP في نفس الشبكة الفرعية مع بيرل؟

StackOverflow https://stackoverflow.com/questions/962347

  •  12-09-2019
  •  | 
  •  

سؤال

كيف يمكنني التحقق مما إذا كانت أرقام IP في نفس الشبكة الفرعية مع بيرل؟ هل أنا استخدم Netaddr :: IP.?

شكرا.

هل كانت مفيدة؟

المحلول

يبدو وكأنه صافي :: وحدة فرعية سوف تفعل هذا. هناك مثال على هذا الرابط الذي قدمته. إذا كنت لا ترغب في استخدام CPAN للحصول على الوحدة النمطية، فإن كل من Debian and Ubuntu يحتوي على حزمة Libnet-Subnet-Perl.

نصائح أخرى

يمكنك تجربة هذا:

#!/usr/bin/perl

use warnings;
use strict;
use NetAddr::IP;

my $first  = NetAddr::IP->new('10.0.0.1/24');
my $second = NetAddr::IP->new('10.0.0.5/32');

if ($second->within($first)) {
    printf "%s is within %s\n", $second, $first;
} else {
    printf "%s is not within %s\n", $second, $first;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top