SyntaxError: Missing parenthese...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
tomycat
User
Beiträge: 10
Registriert: Samstag 31. August 2019, 15:27

Samstag 31. August 2019, 15:31

hallo,

Code: Alles auswählen

def client_function():
    print "Connecting to a server..."
    sys.stdout.write("Server?: ")
    host = stdin.readline().rstrip("\n")
    sys.stdout.write("Port?: ")
    port = stdin.readline().rstrip("\n")
    c = Client(host, int(port))
    c.send_packet("hello!")
    sleep(0.01)
    i = 0
    # wait to get packetConfirm
    while i < 3:
        c.Loop()
        sleep(0.1)
        i += 1

client_function()
Meine Shell:

Code: Alles auswählen

C:\Users\tomycat\Documents>client.py
  File "C:\Users\tomycat\Documents\client.py", line 2
    print "Connecting to a server..."
                                    ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Connecting to a server...")?

C:\Users\tomycat\Documents>
Was mache ich falsch?
Benutzeravatar
sparrow
User
Beiträge: 1315
Registriert: Freitag 17. April 2009, 10:28

Samstag 31. August 2019, 20:40

Du benutzt Python 3 (und das ist gut so), allerdings ist dort "print" im Gegensatz zu Python 2 eine Funktion und benötigt den String daher als Argument.
Wie es korrekt heißt, steht sogar in der Fehlermeldung.
Sirius3
User
Beiträge: 10347
Registriert: Sonntag 21. Oktober 2012, 17:20

Samstag 31. August 2019, 21:16

Warum verwendest Du `sys.stdout`, und `stdin` (da ohne sys)? Üblich wäre `print` und `input` zu benutzen. Die while-Schleife sollte eine for-Schleife sein.
tomycat
User
Beiträge: 10
Registriert: Samstag 31. August 2019, 15:27

Montag 2. September 2019, 17:37

ok danke,
Version II
<Code>
def client_function():
print ("Connecting to a server...")
host = input("Server: ")
print ("\n")
port = input("Port: ")
print ("\n")
c = Client(host, int(port))
c.send_packet("hello")
sleep(0.01)
i = 0
# wait to get packetConfirm
while i < 3:
c.Loop()
sleep(0.1)
i += 1

client_function()
</Code>
<Code>
C:\myprojekt\Pyton_v1>client.py
Connecting to a server...
Server: 192.168.178.95


Port: 4444


Traceback (most recent call last):
File "C:\myprojekt\Pyton_v1\client.py", line 17, in <module>
client_function()
File "C:\myprojekt\Pyton_v1\client.py", line 7, in client_function
c = Client(host, int(port))
NameError: name 'Client' is not defined

C:\myprojekt\Pyton_v1>
</Code>
__deets__
User
Beiträge: 6190
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 2. September 2019, 17:42

Das sind die falschen code-tags, bitte die richtigen benutzen: [code*] und [/code*] (ohne die sternchen, sonst kann man das ja hier nicht sehen).
__deets__
User
Beiträge: 6190
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 2. September 2019, 17:42

Das sind die falschen code-tags, bitte die richtigen benutzen: [code*] und [/code*] (ohne die sternchen, sonst kann man das ja hier nicht sehen).
Sirius3
User
Beiträge: 10347
Registriert: Sonntag 21. Oktober 2012, 17:20

Montag 2. September 2019, 17:54

Natürlich ist `Client` nicht definiert, weil Du `Client` nirgends definierst. Woher hast Du das?
tomycat
User
Beiträge: 10
Registriert: Samstag 31. August 2019, 15:27

Montag 2. September 2019, 19:24

__deets__
User
Beiträge: 6190
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 2. September 2019, 19:46

Ich schrieb ja ohne *.... und in deinem ersten Post hast du das doch auch noch hinbekommen?!?! Und warum soll der Link in Code-Tags...??

Und die Seite die du da hast scheint Mist zu sein, denn die grast selbststaendig Code ab (wahrscheinlich von Github) und extrahiert da irgendeinen Mist, der so nicht laeuft.

Wie waere es, wenn du mal einen Schritt zurueck trittst, und uns erzaehlst, was du da eigentlich erreichen willst?
tomycat
User
Beiträge: 10
Registriert: Samstag 31. August 2019, 15:27

Montag 2. September 2019, 21:49

thx,
ich möchte ein Prog. schreiben das sich bei einem Win Rechner per smb Protokoll anmeldet, sprich:
001_SMB_negotiate
002_SMB_season_setup
003_SMB_Tree_connect_AndX

Dann z.B ein Verzeihnis erstellt etc.
ganz Normal. Ich kann c# php Java...

Ich finde keinen Anfang,
__deets__
User
Beiträge: 6190
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 2. September 2019, 22:17

Das willst du von Anfang an komplett selbst implementieren? Oder gibt es da schon Bibliotheken?
tomycat
User
Beiträge: 10
Registriert: Samstag 31. August 2019, 15:27

Dienstag 3. September 2019, 19:19

Bibliotheken: Genau das ist mein Ziel, ein Skript, wo funkt, wäre für den Anfang super. :D

implementieren: Interesse ja, wie der Aufbau ist. Wenn ich die Bibliotheken im griff habe, dann könnte ich die Implementierung in Wireshark abgreifen.
__deets__
User
Beiträge: 6190
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dienstag 3. September 2019, 19:53

Das ist keine Antwort auf meine Frage. Gibt es solche Bibliotheken? Wenn ja, wie heißen die? Und wie sehen deren Beispiele aus? Denn was du da gesucht und gefunden hast, das hat ja nun nichts mit SMB zu tun.
tomycat
User
Beiträge: 10
Registriert: Samstag 31. August 2019, 15:27

Dienstag 3. September 2019, 20:18

__deets__ hat geschrieben:
Dienstag 3. September 2019, 19:53
Das ist keine Antwort auf meine Frage. Gibt es solche Bibliotheken? Wenn ja, wie heißen die? Und wie sehen deren Beispiele aus? Denn was du da gesucht und gefunden hast, das hat ja nun nichts mit SMB zu tun.
danke für deine Antwort:
Mit Bibliotheken verstehe ich...

Code: Alles auswählen

schnipp...
  cipherText = cipher.encrypt(plainText)
            transformHeader['Signature'] = cipher.digest()
            packet = str(transformHeader) + cipherText

        self._NetBIOSSession.send_packet(str(packet))
        ...schnipp
Der Komplette link:
https://www.programcreek.com/python/exa ... S.MODE_CCM

PS: Die Codes habe ich nicht zum laufen bekommen, der Entwickler gibt mir keine Antwort.


Ich verstehe unter Implantierung:

Code: Alles auswählen

Send.meinText_als_hex(00000085ff534d4272000000001853c00000000000000000000000000000fffe00004000006200025043204e45545...schnipp)
Erster Teil ist Netbios und dann kommt SMB.

ich sende einen Hexstring(negotiate Anfrage) auf Port 445. Der Client meldet sich an den Remote Windows an und das SMB Protokoll wird ausgehandelt.
bitte korrigiere mich wenn ich falsch liege
__deets__
User
Beiträge: 6190
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dienstag 3. September 2019, 21:21

Das ist ja nun ein komplett anderes Projekt. Was hat das mit dem Code den du oben zeigst zu tun?
Antworten