Я только начинаю его учить... Тут набросал маленькую программку. сервер Code: import socket import os print 'vvedite ima polzovatela dla podklychenia?' name = raw_input("--> ") print 'vvedite parol dla dostypa' pass = raw_input("--> ") sock = socket(AF_UNIX, SOCK_STREAM) sock.bind(("",8888)) sock.listen(1) while 1: client,addr = s.accept() sock.connect((client, addr)) print "podklychilsa ",addr client.send('name?') paket = s.recv(2048) if paket == (' ', pass,' ', name): client.send('est kontakt') # Здесь получаем и выполняем команды в цикле for targar in -1: paket = s.recv(2048) cmd = os.popen("C:\\windows\system32\cmd.exe", paket) print 'popitka vipolnit komandy' paket otvet_cmd = cmd.read() print 'rezyltat vipolnenia' otvet_cmd client.send(otvet_cmd) # надо сделать выход из цикла =) # здесь запись в лог фаил (это надо сделать как доп опцию else: client.send('net kontakta') Клиент Code: import socket print 'vibirite vashu OS' print '1 - Windows' print '2 - Linux' sistem = raw_input("--> ") if sistem == 1: sock = socket(AF_INET, SOCK_STREAM) elif sistem == 2: sock = socket(AF_UNIX, SOCK_STREAM) print 'adres servera' server = raw_input("--> ") print 'port servera' port = raw_input("--> ") sock.connect((server,port)) paket = s.recv(2048) if paket == name?: print 'vvedite ima' name = raw_input("--> ") print 'vvedite pass' pass = raw_input("--> ") client.send(' ', pass,' ', name) paket = s.recv(2048) if paket == est kontakt: print 'gotov k peredache komandi' # Тут швыряем команды в бесконечном цикле =) for targar in -1: komanda = raw_input("--> ") client.send(komanda) print 'rezyltat vipolnenia' paket = s.recv(2048) print paket # надо сделать выход из цикла elif paket == net kontakta: print 'avtorizachija ne ydolas' s.close() У меня при запуске выдает кучу ошибок.... если кому не сложно подскажите почему там ошибка (что я сделал не правельно) с меня +
Щас занят немного но при беглом взгляде могу сказать точно, что переменной pass не должно быть!, так как в питоне есть такая функция. Так что переименуй.
что такое 's' ? Питон это откуда должен знать?=> Code: client,addr = sock.accept() И вот на этом этапе сервер начинает работать!11 порадовались)) блин я на отходняках)) позитиффф бля.
И на этом этапе сдох питон(( Оживился... Code: sock =socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock =socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) Далее че за хрень?: Code: if paket == name?: Зачем там вопросительный знак? Удаляй его. Далее: Та же хрень с pass переименовывай. Далее: Code: if paket == est kontakt: Жесть на этом этапе расхотелось смотреть дальше(( Где кавычки то? Далее Code: elif paket == net kontakta: Здесь тоже самое.
De-visible Большое СПАСИБО!!! Кстати кавычки есть,,, странно почему то не копировались на форум. Буду мучать дальше =)
PHP: import socket import os print 'vvedite ima polzovatela dla podklychenia?' name ="admin" #raw_input("--> ") print 'vvedite parol dla dostypa' password ="123" #raw_input("--> ") sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(("127.0.0.1",8888)) sock.listen(1) while 1: client,addr = sock.accept() sock.connect((client, addr)) print "podklychilsa ",addr client.send('name?') paket = s.recv(2048) if paket == (' ', password,' ', name): client.send('est kontakt') # Здесь получаем и выполняем команды в цикле for targar in -1: paket = s.recv(2048) cmd = os.popen("C:\\windows\system32\cmd.exe", paket) print 'popitka vipolnit komandy '+ paket otvet_cmd = cmd.read() print 'rezyltat vipolnenia '+ otvet_cmd client.send(otvet_cmd) # надо сделать выход из цикла =) # здесь запись в лог фаил (это надо сделать как доп опцию else: client.send('net kontakta') PHP: import socket print 'vibirite vashu OS' print '1 - Windows' print '2 - Linux' sistem = raw_input("--> ") if sistem == 1: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) elif sistem == 2: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) print 'adres servera' server = raw_input("--> ") print 'port servera' port = raw_input("--> ") sock.connect((server,port)) paket = s.recv(2048) if paket == name: print 'vvedite ima' name = raw_input("--> ") print 'vvedite pass' password = raw_input("--> ") client.send(' ', password,' ', name) paket = s.recv(2048) if paket == "est kontakt": print 'gotov k peredache komandi' # Тут швыряем команды в бесконечном цикле =) for targar in -1: komanda = raw_input("--> ") client.send(komanda) print 'rezyltat vipolnenia' paket = s.recv(2048) print paket # надо сделать выход из цикла elif paket == "net kontakta": print 'avtorizachija ne ydolas' s.close() ВОт вообщем.. Кстати не желательно начинать учить питон с сокетов, не зная даже о существовании функции pass (( Зы: вот я тут чат устроил... вообщем закрыто, если что велкам ту PM.