Есть ли универсальный спосб на языке Perl определение MAC адреса по IP адресу работающий и под Unix и под NT. ?
Зарание все биг спасибо!
Здравствуйте, Stas_Dragon, Вы писали:
S_D>Есть ли универсальный спосб на языке Perl определение MAC адреса по IP адресу работающий и под Unix и под NT. ?
S_D>Зарание все биг спасибо!
возможно пути к утилитам проидется прописать...
#!/usr/bin/perl
# код для Linux: Davor Ocelic, docelic+linux.hr
# код для Win: мой
print ip2mac('192.168.1.2');
sub ip2mac {
local $_ = shift;
$_ = quotemeta();
my $result;
if ($^O eq "linux") {
chomp($result = `ping -c 1 $_ | arp -a | grep $_ | awk '{print \$4}'`);
}
elsif ($^O eq "MSWin32") {
chomp($result = `ping -n 1 $_ | arp -a | grep $_ -o+`);
$result = (split(/\s+/, $result))[2];
}
return $result;
}
к сожалению не нашел как c cmd сделать что либо подобное awk...
большое спасибо !
Я все понял кроме одного

если не трудно поясните плиз зачем нужна строчка
$_ = quotemeta();
и какую функцию она несет ?
А то я почитал хелпу по этой функции и все ранво не догнал
Здравствуйте, Stas_Dragon, Вы писали:
S_D>большое спасибо !
S_D>Я все понял кроме одного
если не трудно поясните плиз зачем нужна строчка
S_D>$_ = quotemeta();
S_D>и какую функцию она несет ?
S_D>А то я почитал хелпу по этой функции и все ранво не догнал
она обратные слэши ставит перед неалфавитно-цифровыми символами...
алфавитно-цифровые символы: [A-Za-z_0-9]
A>она обратные слэши ставит перед неалфавитно-цифровыми символами...
A>алфавитно-цифровые символы: [A-Za-z_0-9]
Извените меня, что я не особо быстро догоняю

. Еще один маленький вопрос зачем это надо в общем случае и в выше приведенном коде ?
Здравствуйте, Stas_Dragon, Вы писали:
A>>она обратные слэши ставит перед неалфавитно-цифровыми символами...
A>>алфавитно-цифровые символы: [A-Za-z_0-9]
S_D>Извените меня, что я не особо быстро догоняю
. Еще один маленький вопрос зачем это надо в общем случае и в выше приведенном коде ?
можно и без этого... просто так grep более точно отработает... ему IP будет передан в виде регулярного выражения, например: 192\.168\.1\.1
Здравствуйте, anonymous, Вы писали:
A>можно и без этого... просто так grep более точно отработает... ему IP будет передан в виде регулярного выражения, например: 192\.168\.1\.1
Большое спасибо за разяснение. Теперь все ясно