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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> привязка мак+ип под фрёй, Как организовать? 
:(
    Опции темы
ISQman
Дата 21.8.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



дело в том что я запутался с хэшами, пробовал использовать полностью строку с пробельными знаками в качестве массива, но тут я не понял как мне вывести одинаковые ипы.. пробовал использовать в качестве ключей ипы: но тут если ипы повторяются (а ключи как известно не могут бывть одинаковые) они удаляются... пробовал использовать в качестве ключей маки... но тут же проявилась ещё одна проблема: есть юзвери, у которых 2 ипа причём по договору О_о) т.е. корректно выбрать нужные значения просто не могу... поэтому я и настолько запуталсо  smile 
PM MAIL ICQ   Вверх
ginnie
Дата 21.8.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Уважаемый ISQman, не могли бы Вы еще раз сформулировать, что Вам нужно и что не получается сделать?


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


Шустрый
*


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

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



нужно из данного выше списка, который храниться в файле выделить те пары ип-мак, в которых повторяются ипы
PM MAIL ICQ   Вверх
ginnie
Дата 21.8.2008, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Тогда попробуйте предложенный вариант с хешем, только ключами сделайте IP-адреса.


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


Шустрый
*


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

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



деживёж? пива хачу с тобой попить
PM MAIL ICQ   Вверх
nitr
Дата 21.8.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



 smile 
ISQmansmile в Москве, как указано ;) , хотя это как страна...


--------------------
PM   Вверх
ISQman
Дата 22.8.2008, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 smile 
Одесса.... smile  smile 
PM MAIL ICQ   Вверх
nitr
Дата 22.8.2008, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



 smile 
ISQman, у него указано Москва!
Вы тоже можете указать город в профиле.


--------------------
PM   Вверх
ISQman
Дата 28.8.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



по теме:
удаляю повторяющиеся строки "ип мак дата время" при помощи 
Код

my @log = keys %{{map{$_}@log}};

Подскажите где я мог допустить ошибку. а также какие в данном случае использовать модули?

PS было:
Код

195.66.204.117 00:30:48:85:f6:95 at 28.08.08 18:25:54
195.66.204.61 00:30:48:85:f6:95 at 28.08.08 18:25:54
195.66.204.117 00:30:48:85:f6:95 at 28.08.08 18:25:55
195.66.204.61 00:30:48:85:f6:95 at 28.08.08 18:25:55
195.66.204.117 00:30:48:85:f6:95 at 28.08.08 18:25:55
195.66.204.61 00:30:48:85:f6:95 at 28.08.08 18:25:55
195.66.204.117 00:30:48:85:f6:95 at 28.08.08 18:25:56
195.66.204.61 00:30:48:85:f6:95 at 28.08.08 18:25:56

надо:
Код

195.66.204.117 00:30:48:85:f6:95 at 28.08.08 18:25:54
195.66.204.61 00:30:48:85:f6:95 at 28.08.08 18:25:54

PM MAIL ICQ   Вверх
ginnie
Дата 28.8.2008, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Уважаемый ISQman, попробуйте

Код

my %hash = map {$_ => 1} @log;
@log = keys %hash;


только строки будут отсортированы случайным образом.


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


Шустрый
*


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

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



сортировка не проблема, данный способ всё равно не даёт нужного результата, при изменении времени строки всё равно добавляются...((

my @log = keys %{{map{$_ => 1}@log}}; такой вид я тоже пробовал, он эквивалентен способу  ginnie

и так же проблема остаётся


PS может ли данная проблема выявляться из-за чтения данных из файла и как это лучше организовать?

Это сообщение отредактировал(а) ISQman - 29.8.2008, 10:55
PM MAIL ICQ   Вверх
ginnie
Дата 29.8.2008, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Уважаемый ISQman, очередной вариант  smile 

Код

my %hash = map {/^(.+)\sat\s.+$/; $1 => $_} reverse @logs;
@logs = values %hash;



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


Шустрый
*


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

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



Ваш второй способ мне помог, спасибо.
ещё вопрос где можно найти  толковую литературу по хешам, желательно на приятном глазам языке (русском)


заранее спасибо

Это сообщение отредактировал(а) ISQman - 29.8.2008, 10:58
PM MAIL ICQ   Вверх
ginnie
Дата 29.8.2008, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



ISQman, очень рекомендую Программирование на Perl, 3-е издание (магазин продает PDF, в интернете можно найти DJVU).


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


Шустрый
*


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

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



Ещё вопросик по теме:
необходимо при сравнении 2-х массивов вида:
первый элемент массива - '91.202.108.142 00:07:e9:0a:ca:98', второй - '91.202.108.146 00:06:29:77:4b:4c' и т.д.
удалить все совпадения. например:
было:
 @arr_1 =
194.107.117.19 00:1c:c0:3c:5b:70
194.107.117.19 00:1c:c0:3c:5b:70
194.107.117.17 00:30:48:33:a1:01
194.107.117.1 00:d0:58:26:43:c1
@arr_2 =
194.107.117.19 00:1c:c0:3c:5b:70
194.107.117.17 00:30:48:33:a1:01
194.107.117.1 00:d0:58:26:43:c1
91.202.108.131 00:06:29:77:51:33
91.202.108.132 00:07:e9:0b:23:28
стало:
@arr_3 =
91.202.108.131 00:06:29:77:51:33
91.202.108.132 00:07:e9:0b:23:28

либо так:
было:
@arr_1 =
194.107.117.19 00:1c:c0:3c:5b:70
194.107.117.19 00:1c:c0:3c:5b:70
194.107.117.19 00:1c:c0:3c:5b:70
194.107.117.17 00:30:48:33:a1:01
194.107.117.17 00:30:48:33:a1:01
194.107.117.1 00:d0:58:26:43:c1
194.107.117.1 00:d0:58:26:43:c1
91.202.108.131 00:06:29:77:51:33
91.202.108.132 00:07:e9:0b:23:28
стало:
@clear =
91.202.108.131 00:06:29:77:51:33
91.202.108.132 00:07:e9:0b:23:28

Это сообщение отредактировал(а) ISQman - 9.9.2008, 17:40
PM MAIL ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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