accettando il consiglio sulle regole di buona composizione delle domande,
chiudo il post con la soluzione del problema.
In effetti facevo un po' di casino con gli string literal. la soluzione di Varrazzo è perfettamente funzionante e risolutoria e ve la riporto per completezza
''.join(chr(int(x, 16)) for x in macaddr.split(':'))
ciao, grazie

Il 19/10/2012 19:38, Leonardo M. Millefiori ha scritto:
Il 19/10/2012 17:46, Daniele Varrazzo ha scritto:
On 2012-10-19 16:21, Giovanni Vittorio Spina wrote:
ciao a tutti ho un problema
sto facendo un programmetto che avvia dei pc trmite wke on lan
il protocollo da inviare è
*s.sendto('\xff'*6+'\x14\xDA\xE9\x11\x15\xC2'*16,
("255.255.255.255",9))*
cioè l'indirizzo broadcast seguito da 16 volte il macaddress e poi la
netmask
se scrivo in questa forma funziona perfettamente

io leggo da un file testo che l'utente riempirà con il suo macaddress una
stringa del tipo
*macaddress = "14:DA:E9:11:15:C2"*
quindi eseguo le operazioni sul testo che ho letto:
*macParts = macaddress.split(":")
macaddressRightForm=""
for part in macParts:
          macaddressRightForm +='\x'+part.lower()*
*MagicPacket            = macaddressRightForm*16*
dopo di che vorrei costruire la stringa da inviare come
*s.sendto('\xff'*6+MagicPacket, ("255.255.255.255",9))*
e così non ne vuol sapere di funzionare...
è come se facesse delle conversioni implicite per il fatto che sono
valori
esadecimali
potete aiutarmi???
grazie
Vittorio
quando dici es. s.sendto('\xff') non stai mandando una stringa di 4
caratteri, ma uno solo: il byte con valore 255. Il formato '\xnn' è come
la stringa viene "rappresentata", visto che quei caratteri non sono
stampabili.

Quindi se hai un macaddress in testo: "14:DA:E9:11:15:C2" penso tu debba
trasformarlo in bytes. Qualcosa come

In [1]: macaddr = "14:DA:E9:11:15:C2"

In [4]: ''.join(chr(int(x, 16)) for x in macaddr.split(':'))
Out[4]: '\x14\xda\xe9\x11\x15\xc2'

Questo *dovrebbe* essere il tuo macaddressRightForm.

Potresti anche usare il modulo struct:
[1] http://code.activestate.com/recipes/358449-wake-on-lan/
[2] http://docs.python.org/library/struct.html

LMM

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a