Модераторы: ginnie, korob2001, JackYF
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> arp -n | grep $mac 
:(
    Опции темы
Demeo
Дата 10.6.2016, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.6.2016

Репутация: нет
Всего: нет



Доброго дня.

Есть кусок кода, который вытягивает мак-адрес из базы, и по нему грепает IP-адрес из таблицы ARP

$sql="SELECT users.id,users.name,login.mac FROM users,login WHERE users.id = ".$Mid." AND login.mid = ".$Mid." AND login.act = 47$

                $sth=&sql($dbh,$sql);

                while($p=$sth->fetchrow_hashref){
                        $mac = $p->{'mac'};
                        $cmd = q(awk '{print($1)}' | sed 's/(//' | sed 's/)//');
                        $ip_addr = `arp -n | grep $mac | $cmd`;

                        $OUT.="
                        <tr>
                                <td align=\"left\" width=\"200\"><b>".&Filtr_out($p->{'name'})."</b> (".&Filtr_out($p->{mac}).")</td>
                                <td align=\"left\" width=\"200\"><b>".&Filtr_out($p->{'name'})."</b> (".$ip_addr.")</td>

Если в строке строке $ip_addr = `arp -n | grep $mac | $cmd`;
стоит $mac - то не работает
Если вручную прописываю мак вместо переменной - работает

PM MAIL   Вверх
igorold
Дата 10.6.2016, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: нет
Всего: 17



не пробовали записать в лог значение $mac ?
Какое значение принимает?

А вы когда ручками подставляете значение, вы его кавычками обрамляете?

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Demeo
Дата 10.6.2016, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.6.2016

Репутация: нет
Всего: нет



Принимает значение вида 00:00:00:00:00:00

Если в строку <td align=\"left\" width=\"200\"><b>".&Filtr_out($p->{'name'})."</b> (".$ip_addr.")</td>
вместо $ip_addr подставить $mac - то мак отображается корректно

Нет, кавычками не обрамляю -  $ip_addr = `arp -n | grep 11:11:11:11:11:11 | $cmd`;
В этом случае все нормально определяется

Это сообщение отредактировал(а) Demeo - 10.6.2016, 15:08
PM MAIL   Вверх
igorold
Дата 10.6.2016, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: нет
Всего: 17



Я у себя проверил:

Код

#!/usr/bin/perl
use strict;

my $mac = '00:07:e9:5b:f0:53';
my $cmd = q(awk '{print($1)}' | sed 's/(//' | sed 's/)//');
my $ip_addr = `arp -n | grep $mac | $cmd`;

print $ip_addr."\n";



работает ... 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Demeo
Дата 10.6.2016, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.6.2016

Репутация: нет
Всего: нет



так и у меня работает, вопрос почему из базы не берет?
PM MAIL   Вверх
ginnie
Дата 10.6.2016, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 6
Всего: 49



Цитата

так и у меня работает, вопрос почему из базы не берет? 

Покажите ваш
Код

print "arp -n | grep $mac | $cmd";



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
igorold
Дата 10.6.2016, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: нет
Всего: 17



Цитата(Demeo @  10.6.2016,  16:43 Найти цитируемый пост)
так и у меня работает, вопрос почему из базы не берет?


Ну так покажите, что вы формируете из базы ... вас не учили пользоваться отладкой?


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Demeo
Дата 10.6.2016, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.6.2016

Репутация: нет
Всего: нет



Все работает. Как оказалось, в арп-таблице тупо не было этих маков
PM MAIL   Вверх
_zorn_
Дата 12.6.2016, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1003
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Вот только хотел посоветовать в консоле тоже самое набрать smile
PM MAIL   Вверх
saskuu
Дата 7.7.2016, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 7.7.2016

Репутация: нет
Всего: нет



в свое время стояла аналогичная задача.
выяснил, что для более-менее сети (от 500 компов) искать по файлу /proc/net/arp в десятки! раз быстрее, чем пользоваться командой arp
PM MAIL   Вверх
Google
  Дата 23.10.2019, 18:13 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0829 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.