コード例 #1
0
ファイル: qt_sniff.cpp プロジェクト: BackupGGCode/airscan
QString MySniff::get_current_channels(void)
{
	QString chn("");
	
	uint16_t *freqs;
			
	freqs=current_freq();
	
	if (freqs!=NULL){
		while (*freqs!=0){
			chn.append(QString::number(ieee80211mhz2chan(*freqs)));
			freqs++;
			if (*freqs!=0){
				chn.append(",");		
			}
		}
	}
	return chn;
}
コード例 #2
0
ファイル: sniffer.c プロジェクト: veenfang/naive_project
uint16_t radiotap_get(struct pkg_util_info *rd,const u_char *packet,uint32_t len)
{
  struct ieee80211_radiotap_header *radiotap;
  struct ieee80211_radiotap_iterator iterator;
  
  radiotap=(struct ieee80211_radiotap_header *)packet;

  if (radiotap->it_version>PKTHDR_RADIOTAP_VERSION){
    return 0;
  }
  
  if (radiotap->it_len<8 || radiotap->it_len>len){
    return 0;
  }
  
  ieee80211_radiotap_iterator_init(&iterator,radiotap,radiotap->it_len);
  
  while (ieee80211_radiotap_iterator_next(&iterator)>=0){
    switch (iterator.this_arg_index){    
      case IEEE80211_RADIOTAP_TSFT:
        rd->Tsft=(uint64_t)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_FLAGS:
        rd->Flag=(uint8_t)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_RATE:
        rd->Rate=(uint8_t)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_CHANNEL: 
        rd->Channel=(uint8_t)ieee80211mhz2chan((uint32_t)((iterator.this_arg[1])*256+(iterator.this_arg[0]))) | 0x80;
        break;
      case IEEE80211_RADIOTAP_FHSS:
        rd->Fhss=(uint8_t)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_DBM_ANTSIGNAL:
        rd->Antenna_signal=(uint8_t)*iterator.this_arg-256;
        break;
      case IEEE80211_RADIOTAP_DBM_ANTNOISE:
        rd->Antenna_noise=(uint8_t)*iterator.this_arg-256;
        break;
      case IEEE80211_RADIOTAP_LOCK_QUALITY:
        rd->Lock_quality=(uint16_t)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_TX_ATTENUATION:
        rd->Tx_attenuation=(uint16_t)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_DB_TX_ATTENUATION:
        rd->Db_tx_attenuation=(uint16_t)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_DBM_TX_POWER:
        rd->Dbm_tx_power=(int)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_ANTENNA:
        rd->Antenna=(uint8_t)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_DB_ANTSIGNAL:
        rd->Db_antenna_signal=(uint8_t)*iterator.this_arg;
        break;
      case IEEE80211_RADIOTAP_DB_ANTNOISE:
        rd->Db_antenna_noise=(uint8_t)*iterator.this_arg;
        break;
    }      	 
  }
  return radiotap->it_len;
}