modified wakeonlan function