Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.005 c
6-13756
SemFLY
2002-05-19 16:20
2002.08.05
Компанент < FTPServ > ICS от FPiette


1-13713
Yuri Btr
2002-07-24 11:24
2002.08.05
Объявление и использование процедур и функций в Object Pascal


1-13595
Schema
2002-07-24 16:21
2002.08.05
перевод строки


4-13853
KeVRter
2002-05-27 23:15
2002.08.05
Помогите разобраться с rundll32.


14-13815
Felis manul
2002-07-10 09:28
2002.08.05
Значок Мастер Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский