URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6501
[ Назад ]

Исходное сообщение
"ПОМОГИТЕ!!!PERL"

Отправлено anatolik.kiev , 29-Май-07 15:41 
Привет всем!!!

ОООООООООООчень срочно нужна помощь,помогите пожалуйста!!!!

вообщем програмка сама:

#!/usr/bin/perl -w

use NetAddr::IP;

$ip = NetAddr::IP->new('192.168.1.123');

print("$ip\n");

нужно сделать так,чтоб адресс выводился без маски!!!

Спасибо


Содержание

Сообщения в этом обсуждении
"ПОМОГИТЕ!!!PERL"
Отправлено madskull , 29-Май-07 16:37 
А ведь написать man NetAddr::IP намного быстрее, чем сообщение на opennet

"ПОМОГИТЕ!!!PERL"
Отправлено anatolik.kiev , 29-Май-07 17:48 
>А ведь написать man NetAddr::IP намного быстрее, чем сообщение на opennet
да,написан,но я в нем ничего не пойму!

помогите мне пожалуйста!!!


"ПОМОГИТЕ!!!PERL"
Отправлено allez , 30-Май-07 11:12 
>>А ведь написать man NetAddr::IP намного быстрее, чем сообщение на opennet
>да,написан,но я в нем ничего не пойму!
>
>помогите мне пожалуйста!!!

А вы хотя бы попытайтесь понять:

IP(3)                 User Contributed Perl Documentation                IP(3)

NAME
       NetAddr::IP - Manages IPv4 and IPv6 addresses and subnets

SYNOPSIS
         use NetAddr::IP qw(
               Compact
               Coalesce
               Zero
               Ones
               V4mask
               V4net
               :aton
               :old_storable
               :old_nth
         );

         my $ip = new NetAddr::IP 'loopback';

         print "The address is ", $ip->addr, " with mask ", $ip->mask, "\n" ;


В самом начале мана находится ответ на ваш вопрос. Вам не стыдно, а? ;-)

"ПОМОГИТЕ!!!PERL"
Отправлено anatolik.kiev , 31-Май-07 16:35 
Спасибо большое,да стыдно,так как еще не очень разбераюсь в перле

мне переменной нужно присвоить таким образом IP,чтобы это значение я мог бы сравнивать с другой переменной,в которой бы тоже находился IP

к примеру так:

$a="192.168.1.2";
$b="192.168.1.10";
if ($a eq $b) {
         print("IP\t ${a} takoy ge kak i ${b}!");
} else {
         print("Raznie");
}

помогите мне пожалуйста!!!

Спасибо большое на перед!


"ПОМОГИТЕ!!!PERL"
Отправлено allez , 01-Июн-07 10:01 
>Спасибо большое,да стыдно,так как еще не очень разбераюсь в перле
>
>мне переменной нужно присвоить таким образом IP,чтобы это значение я мог бы
>сравнивать с другой переменной,в которой бы тоже находился IP
>
>к примеру так:
>
>$a="192.168.1.2";
>$b="192.168.1.10";
> if ($a eq $b) {
>         print("IP\t ${a} takoy
>ge kak i ${b}!");
> } else {
>         print("Raznie");
>}
>
>помогите мне пожалуйста!!!
>
>Спасибо большое на перед!

Перечитайте внимательнее мое предыдущее сообщение и man Net::IP.
В итоге у вас должно будет получиться примерно следующее:

$ cat l.pl
#!/usr/bin/perl -w

use strict;
use NetAddr::IP;

my $ip = new NetAddr::IP qq($ARGV[0]);
my $addr1 = $ip->addr;
print qq(The address1 is $addr1\n);

$ip = new NetAddr::IP qq($ARGV[1]);
my $addr2 = $ip->addr;
print qq(The address2 is $addr2\n);

if ($addr1 eq $addr2)
{
  print("IP-addresses are equal.\n");
}

else
{
  print("IP-addresses are diffrent.\n");
}

$ ./l.pl 192.168.1.1 192.168.1.1
The address1 is 192.168.1.1
The address2 is 192.168.1.1
IP-addresses are equal.

$ ./l.pl 192.168.1.1 192.168.1.10
The address1 is 192.168.1.1
The address2 is 192.168.1.10
IP-addresses are diffrent.

И напоследок пара советов: во-первых, используйте "#!/usr/bin/perl -w" и "use strict" в
своих программах - облегчает отладку; во-вторых, если не можете в сообщениях
программы использовать русский или украинский язык - пишите на английском, его понять
все-таки легче, чем транслит. Успехов! :-)