Program do zdalnego zarzadzania komputerem

0

Hejka
Własnie piszę taki programi dzięki któemu będe mógł zdalnei zarządzac swoim serwerem, to znczy taki trojan tyle ze widoczny...

I mam taką sprawe, napisalem opcje printscreen... wysylam komende i serwer wykonuje printscreena... wszystko w 100 % poprawnie... juz nie narzekam ze plik zajmmuje 3 MB ! potem pomysle jak go pomnijeszyć...

@le nie o tym mowa... mowa jest o tym jak go pobrać ?
Zakladam ze jest na dysku c:/zzut.bmp
I chce zeby po wykonaniu tej operacji to znaczy zzuceniu go nastopila opcja wyslania go do klienta :/ i tu sie zgubilem !
Nie mam zadnej kocepcji jak przeslac jakis plik miedzy 2 komputerami... bo to co innego niz pobranie z http:// tak więc liczę że ktoś wyjaśni mi konkretnie samo pobieranie...

0

W artykulach jest jak przeslac plik socketami -> tedy droga :)

0

Fakt, musze sobie kupic okulary. :]

Swoja droga to bardzo bardzo ciekawa sprawa, @le mam jedno pytanie... mogę je zadac ?

Klient wysyła komende w postaci
clientsocket1.socket.SendText('open');

serwer odbiera

komenda:=serversocket1.Socket.Connections[0].ReceiveText; 

if (komenda='open') then (...)

Niektóre zeczy chciał bym nadać z parametrem np adres ip jak wyslac takie coś ?
Przydało by sie nadac IP&127.0.0.1 I zeby potem wykrylo komende IP if ip then i wyciagnelo 127.0.0.1 co polecacie w takiej sytuacji ?

0

ja polecam "zaimplementowac" funkcje explode -> tez jest na forum :)

0

A ja proponuje zmienic koncepcje bo z tym pogietym RecieveSext do niczego nie dojdziesz (nie wiem kto to w ogole wymyslil i po co). Zrob se jakis rekord, w nim jakies parametry, jak chcesz zeby bylo jeszcze lepiej to pierw wysylaj jakis naglowek z informacja jaki pakiet zostanie za chwile wyslany. Poza tym nie baw sie w zadne pliki, tylko rob wszystko w pamieci bo bedzie to mialo 1 klatke na pol minuty albo sie pokrzaczy. I lepiej juz sie martw rozmiarem pliku i pomysl jak to rozwiazac bo pozniej bedzie ci trudniej. Sprawa nie jest taka prosta jak sie wydaje.

0

Dobra, słuchajcie od czegoś należy zacząć tak więc narzie robie drogą łopatoligiczną ale potem zrobi się porządnie... na razie chce się nauczyć... potem trzeba bedzie pomyslec nad zaszyfrowaniem hasla itp i tak dalej i tak dalej...
@le na razie jest dobrze...

clientsocket1.socket.SendText('ip@',ip);

Czemu takie coś mi nie działa ?
2 napis IP to zmienna zawierająca adres IP komputera który proboje sie polaczyw w stringu...

0

+, czyli operator (m.in.) konkatenacji łańcuchów

// EDITED:
No i skąd ja to znam? Też często mam takie dziury w mózgu :D

0

Dzięki, po prostu za duzo TP
writeln(' oto wynik', liczba1 * liczba2);

Swoja droga w miedzy czasie wymyslilem opcje zastepcza :D
sent:='ip@'+ip;
i tam tylko sent :D

@le twoja lepsza :D

0

Tak czy siak wysylanie rekordow jest lepsze i latwiejsze imo. Lepiej z nich skorzystaj ;)

0

A możesz mi pokazać jak się je wysyła ?
To znaczy 1 przykład wysłanie odebranie... tylko tyle 1 przykład

0

Zakladajac, ze masz zrobiony i uzupelniony jakis rekord to po prostu SendBuf(Rekord, SizeOf(Rekord)); po drugiej stronie RecvBuff czy jakos tak.

0

Jesli moge wtracic swoja 3 grosze.
Zainstaluj sobie komponent Indy. Tam w przykladach masz takie cos jak idTCPDemo (czy jakos tak to sie zwalo). Jest to w postaci klient-server. naprawde swietnie zrealizowane i wlasnie na recordach. Ale jesli idei o duze pliki to ja i tek wole jes wyslac za pomoca streamow. WriteStream i ReadStream z komponentow idTcpClient i idTcpServer.
Naprawde, to jest duzo latwiejsze i przyjemniejsze niz zabawa na socketach.
Ale to moje zdanie :)

0

Powiem wam tak... Mam gdzieś błąd technologiczny!

Zobaczcie, podsyłam serwerowi adres IP... żeby wiedział, komu ma odpisywać...

Clientsocket1.socket.SendText('ip@'+ip);

Serwer odczytuje

if (List[0]='ip')  then begin
clientsocket1.Address:=list[1];  //start gniazda na adresie IP który zostali wysalany przez klienta..
clientsocket1.active:=true;

Po powyższym podłączeniu w celu przetestowania czy komputery się widzą serwer odpisuje klientowi komendą

clientsocket1.socket.SendText('gotowe@gotowe');

Klient odczytuje


if (List[0]='gotowe') and (List[1]='gotowe') then
begin

label1.Caption:='Online 100 %';

I działa super, @le tylko i wyłącznie na localhoscie w myślach czytaj 127.0.0.1
Podsyłałem kumplowi ten sofcik i jak by to powiedzieć nie otrzymuje w odpowiedzi online100 % :/ na localhoscie działa ! wyświetla... po necie nie :/

Więc jest tu błąd technologiczny z czym należy walczyć...
Dodam że tych samych komponentów używam do wysyłania innych komend, wyłączenia monitora itp. I działają po necie...

Problem jest tylko i wyłącznie z opcja online...

Pamiętajcie !!! na localhostcie 127.0.0.1 DZIAŁA
Może coś to za szybko nadaje... i jakoś trzeba by to spowolnić ?

0

Wiem że głupie ale czy oboje macie zew IP jeden ma zew IP itd?
Bo formalnie to powinno dzialac ...

0

Blad technologiczny? Po co ci clientsocket w serwerze i po co mu ip wysylasz? o_O

0

Sorqa, lag poszedł i 2 odpowiedzi takie same :/

Więc tak
Serwer -> komputer któym będę zarządzać
klient -> komputer z którego będe zarządzać

Więc tak

Wysylam mu ipka zeby wiedział na jaki ma odpisywać ?
To chyba proste ?
Czy jest łatwiejsza metoda niz sprawdzanie z jakiego adresu ip probojesz sie polaczyc i podeslanie go do serwera a ten zeby odpowiadal na podeslany ip ?

Bo potem bedzie wiele innych opcji w stylu kto jest zalogowany, i wtedy klient wysyla zapytanie, serwer odpowiada na ip z ktorego przyslozadanie czyli ogolnie z tego co podeslalo mu IP... bo moze da sie to zrobic inaczej jakoś ?

Clientsocket na serwerze zeby mogl odpowiadac klientowi, przesylac mu informacje, konfiguracje komputera itp.

0

Dlazcego na serwerze stosujesz clientsocket?? Mozna pobrac IP danego polaczenia ServerSocket.Connections[numerpolazcenia].Handle albo jakos tak to szlo. Jak nie znajdziesz tego to jezeli nie zapomne to napisze to dzisiaj ale pozniej :d

0

Powiedzcie czy sam serwer moze cos odpisywac klientowi gdy ten sie z nim polaczy ?

0

Baaa nie dość że może : server.socket.send... to klient moze to odczytac :P

0

Acha, to genialnie !!!!

Napisz mi komende na wysyłanie textu z serwera...
Tak samo jak z klienta tylko zmienia sie nazwa ?
Czy to jest zupelnie inna formuła...

0

wyslanie
ServerSocket.Socket.Connections[nr_polaczenia].SendBuf(Packet, SizeOf(Packet));
z samym tekstem bedzie jakos podobnie ale nie mam przy sobie delphi tylko zrodla mojego komunikatora

a jezeli chodzi o pobranie ip to
ip:string;
ip := ServerSocket.Socket.Connections[nr_polaczenia].RemoteAddress;

0

Powiedz mi tylko 1, o co biega z tym packet ?
Packet, pakiet @le oco chodzi konkretnie... dodam ze moj delphi cos tego nie widzi :/

0

To pewnie jakas tablica array of costam :P
Ale Tobie wystarczy (masz gdzies blad technologiczny i takie tam):
s.Socket.Connections.SendText() // s.Socket.Connections[integer].SendText(string)

0

sry zapomnialem napisac, packet to record
type
TPacket = record
nick : string[15];
cel : string[15];
msg: TMemoryStream;
end;
var
Packet : TPacket;

0

Cały czas myśle nad przesyłem screenów... caly czas cięzko myślę....

Kiedyś widziałem bardzo bardzo bardzo prosty serwer www...
Moze napisać by taki do przesyłania tego obrazka ?
Serwer robi fotke i udostepnia ja... a klient otweiera ja webbrowsherem :]
Dobre ?
Tylko powiedzcie czy to trudne... bo jak przez 2 godziny mam pisac 1000 lini nie zroumialego kodu to wysiadam !

Najprostrzy z mozliwych... tylko 1 plik i w dodatku bmp potem jpg....
Pomozcie...
1 plik ustalony z gory... zadnych ochron przed bledami...
po prostu plik jest i do niego ma sie odwolac webbrowsher...

bo z tymi socketami przesyl pliku to za duza robota...

Chyba ze ma ktos gotowy taki do przeslania 1pliku z okreslonej lokalizacji.. klikasz i wysyla i tyle...

0

gdzies na 4p byl gotowiec albo zrodlo progsa do przesylania pliku, jak bede mial to dam ci ten kawalek bo powinien byc na moim hdd ale nie jestempewny czy to jeszcze mam

0

Właśnie o takie coś mi chodzi... bo już tamto wszystko kumam... serwer odpowiada... wszystko działa u klienta na jednym sokecie klienta i serwerze jednym sokecie serwerowym...

po prostu miodzio... szybko i wydajnie ! :]

0

nie wiem czy to znalazles to podam ci link do artykulu http://4programmers.net/article.php?id=39

0

Coś mi to nie chce wyjść... @le trzeba myśleć że będzie dobrze...

A słuchaj
Bo zobacz...
W tym kursie jest taki kod na poczatku ->

TMainForm.SendFile(const FileName: string)
Zobacz
Bo ja chciał bym to dać w ifke...
If costam cos = then i ten kod... to jak to zaczac ? bo nie kapuje tego w nawiasie const ?
Jak to gdzieś wczesniej przed ifka zadeklarowac ?

0

var
a:boolean;

if a = False then
SendFile(sciezka_do_pliku);

btw
zmodyfikowalbym sobie ta procedure aby mozna bylo wybrac na ktore polacznie chce sie wyslac plik

//edit
tutaj masz link do zrodla programu do przesylania plikow
imieniny

1 użytkowników online, w tym zalogowanych: 0, gości: 1