⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buzzme.c

📁 Kismet is an 802.11b network sniffer and network dissector. It is capable of sniffing using most wir
💻 C
字号:
/************************************************************************* * $Header: /home/dragorn/src/CVS/kismet/kismet-devel/extra/buzzme/buzzme.c,v 1.1.1.1 2002/07/22 15:01:27 dragorn Exp $ * buzzme.c - This program buzzes the Pizzio electric buzzer. I wrote *            this for use with Kismet. You can plug it into the *            /etc/kismet.conf to make sounds when kismet finds a network *            or finds a packet or a bad packet ...etc. * *            I couldn't make speaker make any other noises than one. *            I also don't know if saving state matters or not. Seems *            even volume doesn't change. Anyway, had to get creative *            vary number and length of beeps based on what otpion kismet *            passes in for what it found. * * Author :     Jim Murff (jmurff@pacbell.net) * Version:     1.1 * Date   :     March 30, 2002 * Last Update: April  1, 2002 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * * $Log: buzzme.c,v $ * Revision 1.1.1.1  2002/07/22 15:01:27  dragorn * Kismet-devel * * Revision 1.3  2002/04/02 05:19:57  jmurff * fixed 'q' option. * * Revision 1.1  2002/04/02 01:15:28  jmurff * Initial revision * * *************************************************************************/#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <errno.h>#include <sys/ioctl.h>#include <sys/types.h>#include "sharp_char.h"// MACRO#define USEAGE(PROG) \ fprintf(stdout,"\n  usage   : %s -hjnqt\n",PROG); \ fprintf(stdout,"\n    Helper program for Kismet on the Zaurus.\n"); \ fprintf(stdout,"    Make the Zaurus Pizzio Speaker buzz when\n"); \ fprintf(stdout,"    Kismet calls this program with an option.\n"); \ fprintf(stdout,"    see www.kismetwireless.net for more\n"); \ fprintf(stdout,"    on Kismet.\n\n"); \ fprintf(stdout,"  -n      : Sound for found Network. (%d beeps)\n",NEW_NETWORK); \ fprintf(stdout,"  -t      : Sound for Traffic.       (%d beeps)\n",NETWORK_TRAFFIC); \ fprintf(stdout,"  -j      : Sound for Junk Traffic.  (%d beeps)\n",JUNK_TRAFFIC); \ fprintf(stdout,"  -q      : Do nothing just exit.    (DEFAULT)\n%s%s", \	        "            Use this option to not play a \n", \                "            specific sound.\n"); \ fprintf(stdout,"  -h      : This Help Message\n\n"); \ fprintf(stdout,"  %s\n\n",id);#define BUZZER "/dev/sharp_buz"// GLOBALSstatic char id[] = "$Id: buzzme.c,v 1.1.1.1 2002/07/22 15:01:27 dragorn Exp $";enum {  NEW_NETWORK     =  3,  NETWORK_TRAFFIC =  2,  JUNK_TRAFFIC    =  1,  NOOP            = 99};//************** Code Starts *****************intmain(int argc, char **argv){  int fd, i;  int bflag, ch, flag = NOOP;  sharp_buzzer_status zbs;  sharp_buzzer_status zbs_save;  char *progname = argv[0];  char pname[64];  extern char *optarg;  extern int optind;  // Figure out program name. Remove path if needed.  strncpy(pname,argv[0],sizeof(pname));  if ((progname = rindex(pname,'/')) != NULL) {     progname++; // skip slash.  }  else    progname = pname;  // Parse Options.  bflag = 0;  while ((ch = getopt(argc, argv, "ntjqh")) != -1) {        switch(ch) {        case 'n':          flag = NEW_NETWORK;          break;        case 't':          flag = NETWORK_TRAFFIC;          break;        case 'j':          flag = JUNK_TRAFFIC;          break;        case 'q':        default:          // Do nothing.          flag = NOOP;          break;        case 'h':          USEAGE(progname);          exit(-1);          break;        } // switch  } //while  argc -= optind;  argv += optind;  if (flag == NOOP)    exit(0);  // Open the Buzzer  if ((fd = open (BUZZER, O_RDWR|O_NONBLOCK)) == -1) {      perror("Device Open Error");      fprintf (stderr, "\n%s:%s: Problems opening device '%s'.\n\n",               progname,__FUNCTION__, BUZZER);      exit(1);  }  // Save old setting (don't know if need it)  zbs_save.which =  SHARP_BUZ_SCHEDULE_ALARM;  if (ioctl(fd, SHARP_BUZZER_GETVOLUME, &zbs_save) == -1) {      perror("Error Getting Buzzer Volume");      fprintf (stderr, "\n%s:%s: Problems getting volume on device '%s'.\n\n",               progname,__FUNCTION__, BUZZER);      exit(2);  }  // Set new volume  zbs.which =  SHARP_BUZ_SCHEDULE_ALARM;  zbs.volume = SHARP_BUZ_VOLUME_LOW;  zbs.mute = 0;  if (ioctl(fd, SHARP_BUZZER_SETVOLUME, &zbs) == -1) {      perror("Error Setting Buzzer Volume");      fprintf (stderr, "\n%s:%s: Problems setting volume on device '%s'.\n\n",               progname,__FUNCTION__, BUZZER);      exit(3);  }  for(i = 0; i < flag; i++) {    // Make the Sound    if (ioctl(fd, SHARP_BUZZER_MAKESOUND,SHARP_BUZ_SCHEDULE_ALARM) == -1) {      perror("Error Making Sound");      fprintf (stderr, "\n%s:%s: Problems making sound on device '%s'.\n\n",               progname,__FUNCTION__, BUZZER);      exit(4);    }    usleep(500);  }    // reset to saved value.	  if (ioctl(fd, SHARP_BUZZER_SETVOLUME, &zbs_save) == -1) {      perror("Error Resetting Buzzer Volume");      fprintf (stderr, "\n%s:%s: Problems reseting volume on device '%s'.\n\n",               progname,__FUNCTION__, BUZZER);      exit(5);  }  // Clean up.  close(fd);  exit(0);} // end main

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -