Python Wake-on-Lan script ( WOL your PC )

  Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
arturhs Offline
Junior Member
Posts: 5
Joined: Jan 2004
Reputation: 0
Post: #1
hi all,

today i tried to build a wake-on-lan script to wake up my computer from xbmc. i got a simple script from internet and tried it on xbmc:

import socket

s=socket.socket(socket.af_inet, socket.sock_dgram)
s.sendto('\xff'*6+'\x00\x50\x2c\x01\x99\x52'*16, ('192.168.200.255',9))

this script creates a magic packet tha has the data portion full-filled with six ff pairs and 16 times the mac addres of my computer.

i've tried all the noon to make it work but nothing. so, i've realized that i was having some packet generation problem. i've installed a sniffer and windows python on my notebook. i've discovered that this script works well on windows python a the magic packet is sended to the broadcast address of my network.

when i try to do the same think with the same script running on xbox, the xbmc python socket sends an arp resolution packet trying to figure out who is the host 192.168.200.255. i think that this could be a tcp/ip problem, because this address is a broadcast address for the network, and the tcp/ip knows that.

because o this the wake-on-lan script is not working on xbmc python, but works ok with windows python.

if some one could help, or the xbmc python developers could help we will be pleased.
find quote
darkie Offline
Team-XBMC Developer
Posts: 529
Joined: Sep 2003
Reputation: 0
Post: #2
try '255.255.255.255' as the broadcast address instead of '192.168.200.255'. only the first one seems to work on the xbox

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
arturhs Offline
Junior Member
Posts: 5
Joined: Jan 2004
Reputation: 0
Post: #3
hi darkie...

i've tried with 255.255.255.255 too, but doen't work. no packets are generated on the network with this.

i think that it don't work with this general broadcast address, for the same reason that, with this this address, the windows python don't work:

traceback (most recent call last):
file "c:\wakeonlan.py", line 4, in -toplevel-
s.sendto('\xff'*6+'\x00\x50\x2c\x01\x99\x52'*16, ("255.255.255.255",9))
error: (10013, 'permission denied')

this is a trace from the windows python version. seems that with the *nix oss this address works ok.

no packets on the network are gerenated at all.
find quote
arturhs Offline
Junior Member
Posts: 5
Joined: Jan 2004
Reputation: 0
Post: #4
ok.. it's working now.... the magic packet are being created by xbmc python....

import socket

s=socket.socket(socket.af_inet, socket.sock_dgram)
s.setsockopt(socket.sol_socket, socket.so_broadcast, 1)
s.sendto('\xff'*6+'\x00\x50\x2c\x01\x99\x52'*16, ("255.255.255.255",9))

searching on internet, i've founded that i need to declare the sockets options before sending a packet to a broadcast address. now it's working!!! just copy the script and change the mac address (00 50 2c 01 99 52) with the one of your network board.

you will need to be sure that your computer supports wake-on-lan. to have sure of this, view your network board features and your motherboard bios.
find quote
darkie Offline
Team-XBMC Developer
Posts: 529
Joined: Sep 2003
Reputation: 0
Post: #5
try this one, it generates packets on my xbox.
only problem is my pc doesn't wake up, but that has probably something to do with my pc.
Quote:import struct, socket

def wakeonlan(ethernet_address):

 # construct a six-byte hardware address

 addr_byte = ethernet_address.split(':')
 hw_addr = struct.pack('bbbbbb', int(addr_byte[0], 16),
   int(addr_byte[1], 16),
   int(addr_byte[2], 16),
   int(addr_byte[3], 16),
   int(addr_byte[4], 16),
   int(addr_byte[5], 16))

 # build the wake-on-lan "magic packet"...

 msg = '\xff' * 6 + hw_addr * 16

 # ...and send it to the broadcast address using udp

 s = socket.socket(socket.af_inet, socket.sock_dgram)
 s.setsockopt(socket.sol_socket, socket.so_broadcast, 1)
 s.sendto(msg, ('<broadcast>', 7))
 s.close()

# example use
wakeonlan('00:01:03:d8:7b:76')

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
Gamester17 Offline
Team-XBMC Forum Moderator
Posts: 10,522
Joined: Sep 2003
Reputation: 10
Location: Sweden
Sad   
Post: #6
k, but wouldn't it be much better to implement this in c++ and native xbmc/xbox, as much more memery efficient than python?

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
find quote
GeminiServer Offline
Senior Member
Posts: 174
Joined: Oct 2003
Reputation: 0
Post: #7
lööööööl Big Grin Big Grin Big Grin


i was searching and coding the python script to get work wol! and it works on my xbox after 2 days python coding! and what i see here is.. you guys done it before...

on the next time, i'll look here before doing something [Image: tounge.gif]


regards
geminiserver

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
Timbay Offline
Junior Member
Posts: 2
Joined: Dec 2003
Reputation: 0
Post: #8
hi guys!

great that some of you have the same idea.....has anybody of you ....found out if theire is a xbe that to the same....or this feature will come in xbmc ?

would be cool!

greetingz

timay
find quote
NikosKos Offline
Junior Member
Posts: 3
Joined: Jun 2004
Reputation: 0
Post: #9
i've found this little python script which i find very useful. it saved me several times from walking to my pc just to turn it on.

it sends a wake-on-lan packet through the network.

1.- download the following file :
http://gsd.di.uminho.pt/jpo....hon.txt

2.- save it as "whatever.py"
ex : wol.py

3.- open it with a simple text editor (notepad)
and edit the last line of the script
this one : wakeonlan('0:3:93:81:68:b2')

4.- replace the value between quotes with your own mac address and save the file.

5.- place the file in your script directory on your xbox.

you can now launch the script to turn your computer on and access your shared dirs without moving your fat ass from the sofa.

ps : your computer must support wake-on-lan and your bios must be configured as well. if you don't know what i'm talking about, forget it Smile

edit : my search through the forum for 'wake' or 'wol' didn't give me any result, so sorry if i'm talking about something that's been already discussed. Smile
find quote
Anomaly Offline
Senior Member
Posts: 280
Joined: Nov 2003
Reputation: 0
Post: #10
for what it's worth, using "wake" as a search term comes up immediately with this thread Confused
find quote
NikosKos Offline
Junior Member
Posts: 3
Joined: Jun 2004
Reputation: 0
Post: #11
now, it does. thanks to this sentence :
Quote:edit : my search through the forum for 'wake' or 'wol' didn't give me any result, so sorry if i'm talking about something that's been already discussed.
Smile
find quote
jamal Offline
Junior Member
Posts: 21
Joined: Jan 2004
Reputation: 0
Post: #12
how can i see my mac address ?

thank you... Confused
find quote
tslayer Offline
Team-XBMC Developer
Posts: 3,557
Joined: Oct 2003
Reputation: 12
Post: #13
goto a command prompt in windows (start->run->cmd).

then type:

ipconfig /all

look for your ethernet adapter.

and you will see something like:

physical address. . . . . . . . . : 00-0d-61-0c-4a-d2

there ya go.

ts

42.7% of all statistics are made up on the spot

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
find quote
jamal Offline
Junior Member
Posts: 21
Joined: Jan 2004
Reputation: 0
Post: #14
thank you
find quote
bakashrimp Offline
Junior Member
Posts: 3
Joined: Jan 2005
Reputation: 0
Post: #15
sorry to bump such an old thread, but this script works very nice. thanks.
find quote
Post Reply