LanScope for Linux (предлагаю написать)

Модератор: Модераторы разделов

Аватара пользователя
Serge Daniloff
Сообщения: 106
ОС: бубунту, sVista

Re: LanScope for Linux

Сообщение Serge Daniloff »

Ну вообще на sourceforge.net проект зареген как LANTools API.

Сейчас прорабатываю саму реализацию - в частности всё пишеться на C++ с использованием классов. Каждый класс выполняет _сугубо_ свою задачу - возможно это приведёт к их достаточно большому количеству, НО в дальнейшем это обеспечит более простое внедрение новых функций.

Сейчас я думаю как лучше реализовать базовый класс LtScanNet - класс,, который занимается непосредственно сканированием компьютеров в сети. Сканирование будет производиться с использованием потоков(threads) - документацию по использованию потоков в linux нашел.

Стоит вопрос: как лучше передавать классу IP адресса подсетей для сканирования???
я думаю сделать структурой а-ля
struct subnet_addrs
{
int a, b, c; // маска подсети типа 192.168.1
int b_d; // последний байт адресса - с которого начинаем сканировать
int e_d; // последний байт адресса - до которого сканируем
};

НО, создаю структуру:
subnet_addrs *sa;
int subnet_count = 2; // количество подсетей
sa = new subnet_addrs[subnet_count];
Однако присвоить значения таким образом:
sa[0]->a = 192;
sa[0]->b = 168;
sa[0]->c = 1;
sa[0]->b_d = 1;
sa[0]->e_d = 255;

sa[1]->a = 192;
sa[1]->b = 168;
sa[1]->c = 2;
sa[1]->b_d = 1;
sa[1]->e_d = 255;

НЕ ПОЛУЧАЕТЬСЯ - компилятор выдаёт ошибку.
может это меня уже начинает глючить, но в windows MSVC такое сделать возможно.

Итак, стоит вопрос насущный:
Как найболее удобно можно передавать Ip адресса?
A voyage into trance
Спасибо сказали:
WiZ
Сообщения: 60

Re: LanScope for Linux

Сообщение WiZ »

imho, лучше так (или сканировать предполагается всегда только подсети класса С?)

Код: Выделить всё

struct ip_range{
    struct ip{
        unsigned A : 8,
                B : 8,
                C : 8,
                D : 8;
    } from, upto;
}



ЗЫ не "sa[0]->", а "sa[0]."
Arch / Linux-ck 64bit / xmonad / vim,opera,deadbeef,zsh /
Спасибо сказали:
Feldsher
Сообщения: 7
ОС: SLED 10

Re: LanScope for Linux

Сообщение Feldsher »

у меня есть предложение по поводу того как сканировать сеть по порядку
1) прога находит компьютеры где она уже запущена
2) выбирается диапазон сканирования и тип ресурсов/файлов
3) проги в сети РАСПРЕДЕЛЯЮТ между собой диапазон адресов
при этом уменьшится нагрузка на сеть (ИМХО)
4) после завершения сканирования создается файл/база с ресурсами и сохраняется на каждой машине на которой есть эта прога, чтобы не зависеть от других компьютеров
Спасибо сказали:
Аватара пользователя
Serge Daniloff
Сообщения: 106
ОС: бубунту, sVista

Re: LanScope for Linux

Сообщение Serge Daniloff »

Как мне посоветовал создатель LinScope - сперва заняться документацией.
Я набросал базовую систему основных классов и предлагаю вам их на рассмотрение:

LtScanNet - класс осуществляющий сканирование сети - т.е. поиск включённых компьютеров (с помощью пинга) с ипользованием мультипоточности, он также опеределяет имя компа.
Как только обнаруживаеться включённый компьютер - его адресс сразу передаётся классу LtScanResources - сканирование на наличие каких ливо ресурсов - ftp smb http...etc.
Как и договаривались - всё заноситься в базу по мере обнаружения, базу обслуживает класс LtScanBase.
Все чтение и запись _всех_ настроек осуществляется с помощью класса LtSettings
A voyage into trance
Спасибо сказали:
WiZ
Сообщения: 60

Re: LanScope for Linux

Сообщение WiZ »

Serge Daniloff писал(а):
15.10.2006 23:17
LtScanNet - класс осуществляющий сканирование сети - т.е. поиск включённых компьютеров (с помощью пинга) с ипользованием мультипоточности, он также опеределяет имя компа.
Как только обнаруживаеться включённый компьютер - его адресс сразу передаётся классу LtScanResources - сканирование на наличие каких ливо ресурсов - ftp smb http...etc.
Как и договаривались - всё заноситься в базу по мере обнаружения, базу обслуживает класс LtScanBase.
Все чтение и запись _всех_ настроек осуществляется с помощью класса LtSettings
А к чему все эти извращения с классами? imho, для такой задачи обычного Си было бы вполне достаточно.
Arch / Linux-ck 64bit / xmonad / vim,opera,deadbeef,zsh /
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: LanScope for Linux

Сообщение pelmen »

WiZ писал(а):
16.10.2006 02:15
А к чему все эти извращения с классами? imho, для такой задачи обычного Си было бы вполне достаточно.
А мне кажется, что Serge Daniloff пока что всё правильно делает.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: LanScope for Linux

Сообщение pelmen »

Есть ли какие-нибудь успехи/неудачи? Проект мёртв?
Спасибо сказали:
Аватара пользователя
admiral
Сообщения: 361

Re: LanScope for Linux

Сообщение admiral »

Serge Daniloff писал(а):
15.10.2006 23:17
LtScanNet - класс осуществляющий сканирование сети - т.е. поиск включённых компьютеров (с помощью пинга) с ипользованием мультипоточности, он также опеределяет имя компа.
Как только обнаруживаеться включённый компьютер - его адресс сразу передаётся классу LtScanResources - сканирование на наличие каких ливо ресурсов - ftp smb http...etc.
Как и договаривались - всё заноситься в базу по мере обнаружения, базу обслуживает класс LtScanBase.
Все чтение и запись _всех_ настроек осуществляется с помощью класса LtSettings

IMHO плохо по пингам определять наличие компа, они могут быть запрещены (У меня когда была винда, так Оутпост чего-то запретил пинги входящие). Лучше непосредственно сканировать 21, 139, 80 порты.
О, и еще, наверное желательно вначале сканировать один тип портов на всех компах, потом другой, а то файеры могут начать ругаться на сканирование портов.
Спасибо сказали:
Аватара пользователя
Serge Daniloff
Сообщения: 106
ОС: бубунту, sVista

Re: LanScope for Linux

Сообщение Serge Daniloff »

pelmen писал(а):
26.10.2006 15:59
Есть ли какие-нибудь успехи/неудачи? Проект мёртв?


Ты знаешь, в C++ISO стока подводных камней, что у меня основное время уходит на то, чтобы разобряться почему на меня ругаеться компилятор, хочеться плюнуть на С++ и начать писать на mono.

admiral писал(а):
27.10.2006 14:41
Serge Daniloff писал(а):
15.10.2006 23:17

LtScanNet - класс осуществляющий сканирование сети - т.е. поиск включённых компьютеров (с помощью пинга) с ипользованием мультипоточности, он также опеределяет имя компа.
Как только обнаруживаеться включённый компьютер - его адресс сразу передаётся классу LtScanResources - сканирование на наличие каких ливо ресурсов - ftp smb http...etc.
Как и договаривались - всё заноситься в базу по мере обнаружения, базу обслуживает класс LtScanBase.
Все чтение и запись _всех_ настроек осуществляется с помощью класса LtSettings

IMHO плохо по пингам определять наличие компа, они могут быть запрещены (У меня когда была винда, так Оутпост чего-то запретил пинги входящие). Лучше непосредственно сканировать 21, 139, 80 порты.
О, и еще, наверное желательно вначале сканировать один тип портов на всех компах, потом другой, а то файеры могут начать ругаться на сканирование портов.


Идея, НО что если на компьтере нет ни smb ни ftp ни http - как определить что он включён?
лично мне это требуеться, чтобы можно было следить за сетью и по возможности определить не завис ли свитч

можно добавить этот вариант сканирования как альтернативный
A voyage into trance
Спасибо сказали:
Аватара пользователя
Horrible
Сообщения: 256
Статус: Emacs geek
ОС: Emacs

Re: LanScope for Linux

Сообщение Horrible »

проект умер? на сорсфорж зашёл все понулям
Спасибо сказали: