вопрос по коду (python)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by gold-goblin, 6 Jan 2009.

Thread Status:
Not open for further replies.
  1. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    Я только начинаю его учить...
    Тут набросал маленькую программку.

    сервер
    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()
    
    
    У меня при запуске выдает кучу ошибок.... если кому не сложно подскажите почему там ошибка (что я сделал не правельно) с меня +
     
  2. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Щас занят немного но при беглом взгляде могу сказать точно, что переменной pass не должно быть!, так как в питоне есть такая функция.
    Так что переименуй.
     
  3. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Так
    и так

    Делать незя!11

    Исправь на:
    И еще не забывай не у всех никсы))
     
  4. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    меня учили делать так:
     
  5. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    что такое 's' ? Питон это откуда должен знать?=>
    Code:
    client,addr = sock.accept()
    И вот на этом этапе сервер начинает работать!11
    порадовались))
    блин я на отходняках)) позитиффф бля.
     
    #5 De-visible, 6 Jan 2009
    Last edited: 6 Jan 2009
  6. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    И на этом этапе сдох питон((
    Оживился...


    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:
    Здесь тоже самое.
     
    #6 De-visible, 6 Jan 2009
    Last edited: 6 Jan 2009
    1 person likes this.
  7. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    De-visible
    Большое СПАСИБО!!!
    Кстати кавычки есть,,, странно почему то не копировались на форум.
    Буду мучать дальше =)
     
  8. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    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_INETsocket.SOCK_STREAM)
    sock.bind(("127.0.0.1",8888))
    sock.listen(1)
    while 
    1:
        
    client,addr sock.accept()
        
    sock.connect((clientaddr))
        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_INETsocket.SOCK_STREAM)
    elif sistem == 2:
        
    sock socket.socket(socket.AF_UNIXsocket.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.
     
Thread Status:
Not open for further replies.