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

Поиск:

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


Шустрый
*


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

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



Есть ли возможность организовать привязку мак-ип на перле? DHCP, VPN не интересует. Управляемых свитчей ес-но нету...
PM MAIL ICQ   Вверх
KSURi
Дата 11.8.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не понял... Вы хотите сделать привязку на уровне перловых сокетов?


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
ISQman
Дата 11.8.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



да, если это возможно...
PM MAIL ICQ   Вверх
ginnie
Дата 11.8.2008, 16:05 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Уважаемый ISQman, почему Вы решили использовать Perl для этой задачи? и почему Вы решили, что набор MAC + IP поможет Вам в сети, не имеющей управляемых коммутаторов? Второй вопрос не для обсуждения, просто наводящий на мысли.

Добавлено через 8 минут и 17 секунд
smile
P.S.  для привязки IP к MAC лично я использовал статическую ARP-таблицу на том компьютере, к которому (или через который) необходимо ограничить доступ.


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


Шустрый
*


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

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



это для элементарной защиты от детей, которые научились менять ипы, про замену маков в сети ещё не знают, хотелось бы в идеале связать мак+ип+нэйм в сети, но как реальзовать под фрё так и не понял, поэтому решил сделать сам. А почему на перл... наверное потомучто он мне понравилсо)
PM MAIL ICQ   Вверх
nitr
Дата 11.8.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



ISQman, ipfw насколько я знаю вполне с этим справлялся...
Посмотрите статьи на opennet.ru в разделе фряхи...

Добавлено через 52 секунды
Имхо: это хорошо, что понравился Perl, но всё же он для этого менее предназначен, чем "стандартные/проверенные" тулзы...



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


Шустрый
*


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

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



спс, посмотрим обязательно))
PM MAIL ICQ   Вверх
ISQman
Дата 13.8.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

91.202.108.129 00:07:e9:0b:22:fb
91.202.108.126 00:0c:29:50:42:6e
91.202.108.124 00:1e:8c:72:82:2e
91.202.108.115 00:0c:29:77:39:75
91.202.108.110 00:80:48:10:a6:2d
195.66.204.61 00:30:48:85:f6:95
194.107.117.7 00:30:48:8a:45:21
194.107.117.7 00:0b:bf:76:54:19
194.107.117.4 00:16:c7:97:fe:40
194.107.117.3 00:d0:02:8b:60:0a
194.107.117.21 00:1d:e5:db:34:1b
194.107.117.199 00:02:b3:d3:66:c3
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
193.39.118.233 00:1c:0f:b3:54:1a

одинаковые ипы в отдельный файл; в данном случае выход должен быть:
Код

194.107.117.7 00:30:48:8a:45:21
194.107.117.7 00:0b:bf:76:54:19

и как к этому безобразию можно приписать время, чтобы выход был "ип мак дата(dd.mm.yy h:min:sec)?
PM MAIL ICQ   Вверх
ginnie
Дата 13.8.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Уважаемый ISQman, можно создать хэш, ключами которого будут IP, а значениями массивы MAC-адресов. После обработки списка нужно выбрать (с помощью цикла по всем элементам) из хэша элементы, у которых размер массива больше 1 и записать их в файл.

Не понял в чем проблема с приписыванием времени?

Код

my @date = localtime();
$date[4]++;
$date[5] -= 100;
printf("%s %s %d-%02d-%02d %02d:%02d:%02d", $ip, $mac, @date[3,4,5,2,1,0]);



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


Шустрый
*


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

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



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

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


Эксперт
***


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

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



Уважаемый ISQman, Вы абсолютно правы, я неверно написал: ключами хеша надо сделать MAC-адреса. Значением будет массив IP-адресов.

Цитата

но если буду одинаковые ипы... они ж как ключи просто удалятся.


вот это высказывание я не понял!

Добавлено через 2 минуты и 55 секунд
Предложенный мной вариант ничего не выведет в файл для случаев, когда пользователи будут менять свой IP на любой незанятый, поэтому он неправильный.


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


Шустрый
*


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

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



просто поробовал через цикл вывести значения хэша
Код

while ( my ($key, $value) = each(%hash)){
    print "$key $value\n"
}

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


Эксперт
***


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

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



Уважаемый ISQman, значением в хеше должен быть не IP адрес, а массив IP.

Код

my %macs;
my ($ip, $mac) = split('\s+', $list_line);
push(@{$macs{$mac}}, $ip);



для вывода используем
Код

while ( my ($mac, $ips) = each(%macs) ) {
    if (@$ips > 1) {
        for my $ip (@$ips) {
            print "$mac $ip\n";
        }
    }
}



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


Шустрый
*


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

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



ок, а в таком случае как мне быть если все ипы и маки находятся в одном массиве в виде:
91.202.108.142 00:07:e9:0a:ca:98
91.202.108.146 00:06:29:77:4b:4c
91.202.108.115 00:0c:29:77:39:75
91.202.108.124 00:1e:8c:72:82:2e
91.202.108.131 00:06:29:77:51:33
91.202.108.132 00:07:e9:0b:23:28
как мне применить вышеизложенное решение? 

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


Эксперт
***


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

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



ISQman, правильно ли я понял, что первый элемент массива - '91.202.108.142 00:07:e9:0a:ca:98', второй - '91.202.108.146 00:06:29:77:4b:4c' и т.д.?

Если да, то

Код

my %macs;
for my $list_line (@list_lines) {
    my ($ip, $mac) = split('\s+', $list_line);
    push(@{$macs{$mac}}, $ip);
}

где @list_lines - массив с IP и MAC-адресами в виде строк с пробельным разделителем

Это сообщение отредактировал(а) ginnie - 20.8.2008, 19:51


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


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

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


 




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


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

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