Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.05;
Скачать: CL | DM;

Вниз

Сетевые подключения ...   Найти похожие ветки 

 
star ©   (2002-01-03 12:58) [0]

Недавно обнаружил я, что некоторые из работников моей конторы от безделья лазят по расшаренным папкам чужих машин. Решил я это дело пресечь написав программку типа сетевого монитора, только сидящую в трее и выскакивающую при чьем-либо подключении к моей машине, и сообщающую, кто подключился. Полез в АПИ и обнаружил функцию NetSessionEnum. Функция хорошая, но приходится ее вызывать в таймере, периодически проверяя, не подключился ли кто. Это не есть хорошо, хотелось бы не загружать машину бесполезной работой. Может кто знает другой способ? Например, может винды генерируют какое-либо сообщение при подключении пользователя? Или перехватывать прерывания от сетевухи или еще что... Может у кого есть мысли по этому поводу? Кроме того, когда я пытаюсь отключать пользователей функцией NetSessionDel, им все-же удается скопировать несколько маленьких файлов прежде, чем моя машина их отрубит... В общем, что делать - пока не знаю. Если есть мысли - буду очень рад ...


 
Wonder ©   (2002-01-03 13:05) [1]

А Инспектор сети тебя не устраивает? Или папки запаролировать.


 
samuray ©   (2002-01-03 13:12) [2]

Я пробовал написать такую программу , дошол до этой функции но она почемуто у меня не работала говорит что нету её в длл , может даш исходник на мыло вместе думать будем!!??


 
Tosov ©   (2002-01-03 23:15) [3]

А ОС какая?


 
star ©   (2002-01-04 10:08) [4]

По порядку:
to Wonder:
- Инспектор сети меня не устраивает: не нравится мне торчащая на панели задач программа, которая не умеет всплывать при подключении - мешает сильно (ну сами понимаете, у программиста бывает открыто столько всего одновременно, а тут еще инспектор сети ...)
- Папки запаролить дело хорошее, однако странное дело: Миллениум входит на запароленные папки 98-х без всяких вопросов, как-будто паролей не стоит ...

to samuray
- это вообще дикая функция. Я бился около двух месяцев, чтобы ее запустить, пока не скачал исходники сетевого монитора и не посмотрел принцип использования там. Если очень нужно - вышлю ...

to Tosov:
- ОС - win98 и Миллениум. До NT еще не добрался, но скоро возьмусь ...


 
samuray ©   (2002-01-04 11:59) [5]

да!! очень нужно вышли пожалуйста!!!


 
Fellomena   (2002-01-04 12:39) [6]

2 star: мне тоже вышли plz...

2 samuray: а ты не думал над вариантом установки hook-а ? Предварительно запусти какой-нибудь spy, подключись сам к своей машине и смотри (в spy-е) какое событие произошло. На него и ставь hook.
...но это я так - теоритически сказала - сама не пробовала.
Да, пока не забыла, Милениум невходит на запароленные папки 98 - я в сетке сижу, где есть всё 98, Me, 2000, XP и пароли держаться на 98 =)


 
star ©   (2002-01-04 12:52) [7]

2 Fellomena: вышлю, только обработаю попонятнее.

Пробовал запускать Spy++, и коннектился к машине - ничего - никаких сообщений ... Может есть еще какие spy, но я про них не слышал ...
А что касается Милениума и 98 - я проверил еще раз - Милениум полностью игнорирует пароли 98. Может у меня какой-нибудь коряво взломанный вариант???


 
Woron ©   (2002-01-04 14:48) [8]

2Star: Вышли и мне plz исходнички

А насчет паролей, простой способ проверить поставить новый и войти.
Чаще всего при вводе пароля на папку (при подключении) не убираем галочку СОХРАНИТЬ ПАРОЛЬ.
Когда-то не хотелось переставлять системы на компах юзерей, так нашел в реестре, где они храняться. Но уже забыл


 
star ©   (2002-01-04 15:41) [9]

Все эти галочки, кеширование паролей и пр. пройдено в глубоком детстве. Я же говорю, пререпробовал по всякому.
Мне не это главное, мне главное отлавливать САМ МОМЕНТ подключения пользователя, а не опрашивать их присутствие по таймеру. А вот КАК это сделать, я и не знаю. Переворотил тут весь MSDN, искал сообщения, генерируемые виндами при коннекте - не нашел. Уже голова болит от аглицких письменов ...


 
nikkie ©   (2002-01-04 16:28) [10]

я поискал - мне кажется NetAlertStart, NetAlertStop должны помочь. в MSDN про них не написано, а Google дал такую ссылку:

http://docsrv.caldera.com:1997/cgi-bin/man/man?NetAlertStart+3


 
Igorok ©   (2002-01-06 12:10) [11]

2Star
Может ты на своей машине рашарил папку с паролем и сам же на свою машину через сетевое окружение входишь? Тогда понятно почему он пароль не спрашивает ;) А ведь он и не должен ...


 
Victor   (2002-01-08 05:37) [12]

Поставь Windows 2000 :)


 
DelGod ©   (2002-01-09 04:07) [13]

есть рульная прога portmonitor сайт разработчика irctoolz.com
но её там почему-то нет :-(( но я могу кинуть вам на мыло
я думаю она вам подойдёт сидит в трее при подключении на какой-то порт "выпрыгивает" на середину екрана:-))


 
star ©   (2002-01-09 11:10) [14]

Скиньте, если не трудно, посмотрю, что это такое.
Я же пишу не порт-сканнер, а просто оповещатель о подключении пользователя ...
Если бы где найти исходники порт-сканнера ...


 
DelGod_   (2002-01-09 17:29) [15]

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


{s: TPowersock;}

procedure TForm1.NextPORT;
begin
s.disconnect;
inc(It);
s.port:=it;
statusbar1.SimpleText := "Scanning "+s.Host+" : "+inttostr(s.port);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Enabled := false;
Edit2.Enabled := false;
Edit3.Enabled := false;
Edit4.Enabled := false;
speedbutton1.Enabled := false;
speedbutton2.Enabled := true;

listbox1.Items.Add("Scan begin");
go:=true;
it:=0;
s.timeout:=strtoint(edit6.text);
s.Host := edit1.text +"."+edit2.text + "."+edit3.text + "."+edit4.text;
NextPORT;
s.Connect;

listbox1.Items.Add("Scan complete");
Edit1.Enabled := true;
Edit2.Enabled := true;
Edit3.Enabled := true;
Edit4.Enabled := true;
speedbutton2.Enabled := false;
speedbutton1.Enabled := true;
s.Disconnect;
end;

procedure TForm1.sConnect(Sender: TObject);
begin
if not go then
begin
s.Disconnect;
exit;
end;
listbox1.items.Add(s.host+":"+inttostr(s.port));
NextPORT;
if it>=65000 then
begin
listbox1.Items.Add("Scan complete");
statusbar1.Simpletext := "";
go:=false;
Edit1.Enabled := true;
Edit2.Enabled := true;
Edit3.Enabled := true;
Edit4.Enabled := true;
speedbutton1.Enabled := true;
speedbutton2.Enabled := false;
exit;
end;
if go then s.connect else exit;
end;

procedure TForm1.sConnectionFailed(Sender: TObject);
begin
if not go then
begin
s.disconnect;
exit;
end;
NextPORT;
if it>=65000 then
begin
listbox1.Items.Add("Scan complete");

statusbar1.Simpletext := "";
go:=false;
Edit1.Enabled := true;
Edit2.Enabled := true;
Edit3.Enabled := true;
Edit4.Enabled := true;
speedbutton1.Enabled := true;
speedbutton2.Enabled := false;
exit;
end;
if go then s.connect else exit;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
go:=false;
listbox1.Items.Add("Scan aborted");
statusbar1.Simpletext := "";
s.cancel;
Edit1.Enabled := true;
Edit2.Enabled := true;
Edit3.Enabled := true;
Edit4.Enabled := true;
speedbutton1.Enabled := true;
speedbutton2.Enabled := false;
end;


 
Алексей Кудринский   (2002-03-06 22:34) [16]

Не могу заставить NetSessionEnum работать (OS-WinXP, причина-AccessViolation)...
Кто-нибудь, вышлите иcходники, пожалуйста! Больше нигде не могу найти.


 
J'JF   (2002-04-17 08:15) [17]

А я под W2K не могу заставить работать NetSessionEnum (и вообще все семейство команд Net*). Воспользовался примерами из данного форума - дохлый номер. Понятно, что в W2K другой список формальных параметров. Может кто подскажет, как их правильно описывать и вызывать? Хотя бы на примере NetSessionEnum (дальше сам разберусь)! Заранее благодарен.
P.S. Delphi 5.


 
Alex_LG ©   (2002-04-17 14:41) [18]

а как на счёт фаерволов?


 
erik ©   (2002-04-17 15:34) [19]

Я бы рекомендовал использовать комбинированый метод. Если приходит пакет на определенный порт, то вызывать NetSessionEnum
И разумеется делать в треде а не в таймере.


 
NeyroSpace   (2002-04-24 01:35) [20]

Всем привет!
1. Я тоже намучался с Net* ф-циями и тоже пишу свой монитор вместо MS NetWatch. Полазив по MSDN я кое-что понял. Все LAM Ф-ции, определенные в NetApi32.dll на 9х/Me работать не будут, да и сама NetApi32 в 9x сильно обрезана (я попытался заменить ее NT-шной, но она потянула за собой кучу других dll вплоть до ядра :-). Но на 9x/Me есть альтернатива SrvApi.dll. Примеры можно найти здесь: <a> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/ntlmapi_29mb.asp</a>. Если загляните, то увидите, что для 9x/Me определены свои структуры _50, кот предоставляют минимальную инфу о сети :-(. Не мучтесь и не набивайте все это, а лучше берите прототипы с Project Jedi.
2. Проблема с таймером знакома, простого решения не знаю - вопрос открыт.
3. Про сканер портов я уже отвечал, есть способ через IpHlpApi.dll гораздо аккуратнее. Но там таже проблема с событиями.

PS

Если можно и мне киньте исдники может чего упустил, разгребая MSDN :-)


 
GatesBill   (2002-05-13 00:22) [21]

>- Папки запаролить дело хорошее, однако странное дело: >Миллениум входит на запароленные папки 98-х без всяких >вопросов, как-будто паролей не стоит ...


Не подскажет ли кто из М и л е н и й щ и к о в ... так это или нет?
( ... но верится с трудом).



 
Сатир   (2002-05-13 19:04) [22]

2_DelGod
а в каком модуле TPowerSock лежит?


 
Сатир   (2002-05-14 17:21) [23]

2 DelGod_
модуль нашел. FastNet. но вот в работе спотыкается:-(, когда на button1 жму, получается access violation in project1.exe.
может ещё чего надо? у меня стоит прокси, а карта LAN, это случайно не причина глюка? ... ладно , пойду в хелпе покопаюсь


 
Сергей Ф ©   (2002-05-16 20:48) [24]

Согласен с Alex_LG. По-моему, тоже можно использовать firewall.

Например, такой: Kerio Personal Firewall ( http://www.kerio.com). Последняя версия 2.1.4. Весит около 2 Мб, правда, платный :(((

Будет сидеть в трэе, а как только к зашаренной папке кто-то подключиться, выведет сообщение на экран и спросит, разрешить или запретить подключение. Укажет всю информацию о том компьютере, с которого производилась попытка подключения.

IMHO, это один из лучших firewall"ов.


 
cypher ©   (2002-05-22 23:54) [25]

Если вопрос открыт, могу рассказать как заставить работать функции Net в любых осях



Страницы: 1 вся ветка

Текущий архив: 2002.08.05;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.012 c
1-13668
John0001
2002-07-23 15:20
2002.08.05
Динамически создаваемое меню....


1-13649
Skif
2002-07-23 12:11
2002.08.05
Файлы и папки


1-13662
id_privin
2002-07-23 14:29
2002.08.05
Static variables


14-13788
Galinka
2002-07-09 12:51
2002.08.05
Где можно почитать про БД в Delphi, интересуют клиент-серверные


4-13855
KeVRter
2002-05-29 16:31
2002.08.05
Как подключить мышь к LPT-порту?