蛋疼研究所的蓝牙签到

最近整个研究所对实验室的人采取了手机蓝牙签到机制,每个人手机上需要安装一个app,然后手动点击签到和离开按钮,以此来统计每个人的每天工作时间,不得不说这是个反人类的设计,本着just hacking for fun的精神,arp嗅探了手机发出去的数据包,得知和服务端是通过TCP进行通信,同时也得到了数据包的格式,于是开工写脚本,实现自动签到。

代码如下,用PHP socket实现:

  1 <?php
  2 /**
  3  * 1.生成当前时间,判断该时间是处于上午,下午,晚上的哪个时间段
  4  *
  5  * 2.根据时间段的判断生成随机时间
  6  *
  7  * 3.封包发送签到数据
  8  *
  9  *
 10  */
 11 //生成随机时间的函数
 12 date_default_timezone_set(‘Asia/Chongqing‘);
 13 function rand_time($start_time,$end_time){
 14
 15     $start_time = strtotime($start_time);
 16     $end_time = strtotime($end_time);
 17     return date(‘Y-m-d H:i:s‘, mt_rand($start_time,$end_time));
 18 }
 19 $curTime=date("H:i:s");         //当前时间
 20 if($curTime>="06:00:00" &&$curTime<="09:30:59")
 21 {
 22     $startTime=date("Y-m-d")." 06:00:00";
 23     $endTime=date("Y-m-d")." 08:30:59";
 24     $signTime=rand_time($startTime,$endTime);
 25 }
 26 else if($curTime>="09:31:00" && $curTime<="12:30:59")
 27 {
 28     $startTime=date("Y-m-d")." 11:45:00";
 29     $endTime=date("Y-m-d")." 12:30:59";
 30     $signTime=rand_time($startTime,$endTime);
 31 }
 32
 33 if($curTime>="13:30:00" && $curTime<="15:30:59")
 34 {
 35     $startTime=date("Y-m-d")." 13:30:00";
 36     $endTime=date("Y-m-d")." 14:30:59";
 37     $signTime=rand_time($startTime,$endTime);
 38 }
 39 else if($curTime>="15:31:00" && $curTime<="18:30:59")
 40 {
 41     $startTime=date("Y-m-d")." 17:45:00";
 42     $endTime=date("Y-m-d")." 18:30:59";
 43     $signTime=rand_time($startTime,$endTime);
 44 }
 45 if($curTime>="19:30:00" && $curTime<="21:00:59")
 46 {
 47     $startTime=date("Y-m-d")." 19:30:00";
 48     $endTime=date("Y-m-d")." 20:00:59";
 49     $signTime=rand_time($startTime,$endTime);
 50 }
 51 else if($curTime>="21:01:00" && $curTime<="23:00:59")
 52 {
 53     $startTime=date("Y-m-d")." 22:30:00";
 54     $endTime=date("Y-m-d")." 23:00:59";
 55     $signTime=rand_time($startTime,$endTime);
 56 }
 57 $ssid=rand(1,100);
 58 $ssid="-".$ssid;    //随机生成信号强度
 59 error_reporting(E_ALL);
 60 set_time_limit(0);
 61 echo "BlueTooth Sign\n";
 62
 63 $port = 8***;  //此处打码
 64 $ip = "202.***.***.***";    //此处打码
 65 $blueTooth=<<<blueToothInfo
 66 upload
 67 24:**:**:**:**:**
 68 $signTime
 69 10:**:**:**:**:**
 70 $ssid
 71 exit
 72
 73 blueToothInfo;
 74 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
 75 if ($socket < 0) {
 76     echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
 77 }else {
 78     echo "OK.\n";
 79 }
 80
 81 echo "尝试连接 ‘$ip‘ 端口 ‘$port‘...\n";
 82 $result = socket_connect($socket, $ip, $port);
 83 if ($result < 0) {
 84     echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
 85 }else {
 86     echo "连接成功\n";
 87 }
 88 if(!socket_write($socket, $blueTooth, strlen($blueTooth))) {
 89     echo "socket_write() failed: reason: " . socket_strerror($socket) . "\n";
 90 }else {
 91     echo "数据发送成功\n";
 92     echo "发送的内容为:\n$blueTooth";
 93 }
 94 $out = socket_read($socket, 20);//读取服务器返回的内容,20字节
 95 if($out=="sbwzc\n")
 96 {
 97     die("设备未注册");
 98 }
 99 if($out=="wsmdsmj\n")
100 {
101     die("未扫描到扫描机,签到失败,请重构数据包");
102 }
103 if($out=="success\n")
104 {
105     echo "签到成功\n";
106 }
107 echo "正在关闭连接...\n";
108 socket_close($socket);
109 echo "关闭成功\n";
110 ?>
111     
时间: 2024-10-11 08:39:37

蛋疼研究所的蓝牙签到的相关文章

蛋疼的远程声音,这次用蓝牙试试看

前一篇写的是<利用JACK在Windows下PC之间传递声音>,实现的是Windows--Windows之间声音的传递.效果的话,无线连接使用起来感觉声音失真经常出现:有线连接则没有这个问题.买的Alpha也是上了个USB声卡,然后带耳机听.时间长了就不习惯耳机了,感觉还是开放的音箱好.但是懒癌,穷癌发作了,不愿意重新出来购买一对音箱,那就寻求别的解决方案吧,上次的JACK这回也安装了,还是觉得声音质量不行(1分钟出现一次跳帧你能忍?),同时延迟问题一般不注意是感觉不到的,但是玩CS测试了一下

庆祝下,opensuse 13.2下蓝牙音箱启用成功

如题了,媳妇公司年会摸奖搞了个philips 的bluetooth音箱,一直在opensuse kde下没搞成功.今晚正在考虑要不要把opensuse换成ubuntu,但觉得环境太难搭了,于是继续搞了一会儿,成功了,声音很美妙! 简单记录下步骤: 1,进入系统设置,在蓝牙设置里,想办法把蓝牙音箱给连接起来,如果连不起来就比较蛋疼了. 参考这货的资料:http://blog.chinaunix.net/uid-20680966-id-4333454.html 2,把音频设置为蓝牙输出:在桌面的右下

硬件丰满队友骨感,小米蓝牙手柄评测

虽然各大游戏厂商都开始将重心从掌机转移到智能手机,但无论手机性能如何提升,没有实体按键反馈的触摸屏总是缺了点快感的,这恐怕是掌机依然存活的重要原因. 为了让游戏迷们玩得更爽,市面上出现了不少蓝牙游戏手柄.而小米也在9月,开始了自家蓝牙游戏手柄的公测,现在就让我们看看手机厂商会把手柄做成什么样子吧. 包装与开箱 包装还是小米经典的纯色牛皮纸盒,唯一的图案是右上角的logo. 包装底部右下角是印有型号名.生产日期等信息的贴纸. 盒子顶盖内侧有一层黑色的缓冲泡沫. 手柄躺在由牛皮纸压制成的托盘上,上面

iOS 蓝牙开发(三)app作为外设被连接的实现(转)

转载自:www.cocoachina.com/ios/20151105/14071.html 原作者:刘彦玮 再上一节说了app作为central连接peripheral的情况,这一节介绍如何使用app发布一个peripheral,给其他的central连接 还是这张图,central模式用的都是左边的类,而peripheral模式用的是右边的类 peripheral模式的流程 1. 打开peripheralManager,设置peripheralManager的委托 2. 创建characte

iOS蓝牙开发(上)基础以及连接外设的实现

蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE peripheral,central == 外设和中心,发起连接的时central,被连接的设备为perilheral service and characteristic === 服务和特征 每个设备会提供服务和特征,类似于服务端的api,但是机构不同.每个外设会

Android蓝牙开发---站在前辈的肩膀上唠嗑

描述一段背景:前年我找工作时,总碰到一个问题. 面试官问:"你会蓝牙开发吗?". 我说:"不会". 面试官答:"那,很抱歉.我们商量了一下,觉得你不适合这个岗位." 于是我就走了,心里想:"就应为一个蓝牙通讯技术不会,就把我给cut了,这面试官好有想象力." 我一个同学,都没做过编程,我半年时间都带到android开发道上了.我仅仅蓝牙没做过,研究蓝牙无非就是三两天的时间,难吗? 于是,我周末窝在家里,查阅了大量资料,实践和总

手机签到应用的设计与手机定位方法浅析

上班签到.打卡是企业的基本管理方式,传统的签到方式在适用性.便捷性等方面存在一定的局限,比如对于外出员工的签到管理,传统的方式就难以实现,另外传统的签到设备,签到记录不便于实时获取,统计时需要先从设备上导出考勤记录,再进行分析.统计,这些都无疑增加了考勤人员的负担.同时与考勤密切相关的员工请假.领导审批功能,需要单独实现,难以无缝对接,针对这些问题,我们特设计了“爱签到”应用.该应用主要的功能设计如下: 一.签到/签退      实现签到.签退功能.每天未签到时默认显示签到按钮,已经签到的,显示

Android低功耗蓝牙(蓝牙4.0)——BLE开发(上)

段时间,公司项目用到了手机APP和蓝牙设备的通讯开发,这里也正好对低功耗蓝牙(蓝牙4.0及以后标准)的开发,做一个总结. 蓝牙技术联盟在2010年6月30号公布了蓝牙4.0标准,4.0标准在蓝牙3.0+HS标准的基础上增加了对低功耗蓝牙(BLE)的支持.相比原有的普通蓝牙和高速蓝牙,BLE最大的特点就是低功耗,低延时,快速的搜索和连接速度,但数据传输速度相比传统蓝牙低.接下去将从BLE的概念以及代码两个方面介绍Android下的BLE. 先来说说基本概念: 1.BLE相关概念 1.1 GATT.

蓝牙4.0

http://www.voidcn.com/blog/wangqjpp/article/p-5038224.html android使用蓝牙4.0的条件:Android API Level 要在18及以上,即android 4.3以上. 一.蓝牙的几个参数: 1.1 BluetoothGatt 继承BluetoothProfile,通过BluetoothGatt可以连接设备(connect),发现服务(discoverServices),并把相应地属性返回到BluetoothGattCallba