• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > 局域网远程开机软件制作代码分享

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了局域网聊天软件源代码,局域网远程代码,局域网代码,求生之路2局域网代码,局域网聊天代码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

#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;
 

}

</div>

</div>

您可能想查找下面的文章:

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

相关文章

  • shell脚本编程之循环语句
  • linux使用管道命令执行ps获取cpu与内存占用率
  • linux网络相关命令汇总(6)
  • 并发数据库压力测试的shell脚本代码
  • 一天一个shell命令 linux好管家-进程-ps命令详解
  • shell脚本实现快速生成xml格式sitemap实例分享
  • Shell脚本中调用、引用、包含另外一个脚本文件的两种方法
  • Shell脚本实现的基于SVN的代码提交量统计工具
  • bash 循环中变量作用范围的问题分析
  • 常用Linux Shell进阶部分小结

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Shell脚本实现防止国外ip访问服务器
    • linux sed命令详解(推荐)
    • linux shell在while中用read从键盘输入的实现
    • CentOS下redis自启动shell脚本
    • Shell脚本中实现更新PHP5
    • linux shell 管道命令(pipe)使用及与shell重定向区别
    • linux C语言开发管道通信实例详解
    • shell实现四则运算简单方法
    • 又拍云存储同步脚本
    • 一个简单的linux命令 touch

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有