源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

局域网远程开机软件制作代码分享

  • 时间:2021-07-09 18:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:局域网远程开机软件制作代码分享
[u]复制代码[/u] 代码如下:
/*************************************************************************  > 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;   }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部