中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何編寫局域網遠程開機軟件制作代碼

發布時間:2021-10-08 15:04:20 來源:億速云 閱讀:124 作者:iii 欄目:開發技術

本篇內容主要講解“如何編寫局域網遠程開機軟件制作代碼”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何編寫局域網遠程開機軟件制作代碼”吧!

代碼如下:

/*************************************************************************
 > File Name: wake_up.c
 > Author: wz
 > Created Time: Fri 15 Nov 2013 03:42:47 PM CST
 ************************************************************************/

#include<unistd.h>
#include<arpa/inet.h>
#include<net/if.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sys/ioctl.h>

void get_mac(char *argv,unsigned char *save_mac)
{
 int j = 0;
 int num_x = 0,num_d,first = 1;
 while(*argv != 0)
 {
  if(*argv != ':')
  {
   if(isdigit(*argv) && first)
   {
    num_x = (*argv - '0')*16;
    first = 0;
    argv++;
    continue;
   }
   if(first && isalpha(*argv))
   {
    num_x = (10+(*argv - 'a'))*16;
    first = 0;
    argv++;
    continue;
   }
   if(!first && isdigit(*argv))
   {
    num_x = num_x+(*argv - '0');
    first = 1;
    argv++;
    continue;
   }
   if(!first && isalpha(*argv))
   {
    num_x = num_x + (10 + (*argv - 'a'));
    first = 1;
    argv++;
    continue;
   }

  }
  else
  {

   save_mac[j] = num_x;
   num_x = 0;
   argv++;
   j++;
  }


 }

 save_mac[j] = num_x;
}

int main(int argc,char *argv[])
{
 int sockfd,i,j,on = 1,n;

 unsigned char packet[120];
 unsigned char save_mac[120];
 struct sockaddr_in to;

 if(argc < 2)
 {
  fprintf(stderr,"用法:程序名 + 目標主機物理地址");
  return 1;
 }

 get_mac(argv[1],save_mac);

 //構建magic數據包
 for(i = 0; i < 6; i++)
 {
  packet[i] = 0xff;
 }

 for(i = 1; i < 17; i++)
 {
  memcpy(packet+i*6,save_mac,6);

 }


 sockfd = socket(AF_INET,SOCK_DGRAM,0);

 setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(on));

 if(socket < 0)
 {

  fprintf(stderr,"套接字創建錯誤\n");
  return 1;
 }

 memset((void *)&to,0,sizeof(to));

 to.sin_family = AF_INET;
 to.sin_port = htons(30000);
 to.sin_addr.s_addr = inet_addr("125.217.40.255");

 n = sendto(sockfd,packet,sizeof(packet),0,(struct sockaddr *)&to,sizeof(to));

 if(n <= 0)
 {
  fprintf(stderr,"發送失敗!\n");
  return 1;

 }
 else
 {
  printf("發送成功.\n");
 }
 close(sockfd);
 return 0;
 

}

到此,相信大家對“如何編寫局域網遠程開機軟件制作代碼”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

石渠县| 徐水县| 兴业县| 浦东新区| 延吉市| 屏南县| 桦川县| 平果县| 海林市| 芦山县| 荃湾区| 鄄城县| 宁夏| 永清县| 白朗县| 金门县| 五大连池市| 都匀市| 辽宁省| 宁德市| 碌曲县| 密云县| 信阳市| 余庆县| 上犹县| 日土县| 上栗县| 秦皇岛市| 绥德县| 凤台县| 宝鸡市| 密山市| 白玉县| 和顺县| 芷江| 达孜县| 龙山县| 汶川县| 高陵县| 宁化县| 兴文县|