Форум: "Сети";
Текущий архив: 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.007 c