root/EnciendeEquipos/NetworkUtils.py @ 87
86 | Chisco | ##############################################################################
|
|
# -*- coding: utf-8 -*-
|
|||
# Project: EnciendeEquipos
|
|||
# Module: NetworkUtils.py
|
|||
# Purpose: Network utilities
|
|||
# Language: Python 2.5
|
|||
# Date: 17-Jan-2010.
|
|||
# Ver: 17-Jan-2010.
|
|||
# Author: José L. Redrejo Rodríguez
|
|||
# Copyright: 2009 - José L. Redrejo Rodríguez <jredrejo @nospam@ debian.org>
|
|||
#
|
|||
# EnciendeEquipos is free software: you can redistribute it and/or modify
|
|||
# it under the terms of the GNU General Public License as published by
|
|||
# the Free Software Foundation, either version 3 of the License, or
|
|||
# (at your option) any later version.
|
|||
# EnciendeEquipos is distributed in the hope that it will be useful,
|
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|||
# GNU General Public License for more details.
|
|||
#
|
|||
##############################################################################
|
|||
import socket,struct
|
|||
def startup(address):
|
|||
addr_byte = 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))
|
|||
msg = '\xff' * 6 + hw_addr * 16
|
|||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|||
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
|||
try:
|
|||
s.sendto(msg, ('<broadcast>', 9))
|
|||
s.sendto(msg, ('<broadcast>', 7))
|
|||
s.sendto(msg, ('192.168.0.255', 9))
|
|||
s.sendto(msg, ('192.168.0.255', 7))
|
|||
except:
|
|||
s.sendto(msg, ('<broadcast>', 2000))
|
|||
s.sendto(msg, ('192.168.0.255', 2000))
|
|||
s.close()
|