كيف يمكنني التحقق مما إذا كانت أرقام IP في نفس الشبكة الفرعية مع بيرل؟
سؤال
كيف يمكنني التحقق مما إذا كانت أرقام 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;
}
لا تنتمي إلى StackOverflow