bool usersended = false; //
用於標記是否傳送過密碼
bool firstpacket = true; //
用於標記第乙個包是否已傳送
bool online = false;//
hwnd howner = 0;//
介面的窗體控制代碼
pcap_t *fp = null;//
網絡卡裝置
初始化各種待傳送的包,略(包結構參考有關資料)
unsigned char connectbuf[60]
請求連線包
unsigned char disconnectbuf[60]
請求斷開包
unsigned char unknowbufa[67]
我不知道的包
unsigned char passwordbuf[60]
包含密碼、使用者名稱的包
unsigned char keepbuf[60]
保持連線的包,包含
ip、使用者名稱
unsigned char sendusernamebuf[60]
傳送ip
、使用者名稱的包 //
開啟網絡卡,用
pcap_findalldevs
()獲得
*device
bool opendevice(char* device)
void closedevice()//
關閉網絡卡
} void deviceloop()//
啟動包處理迴圈
// 分析包並產生相應動作
void packet_handler(unsigned char *param,
const struct pcap_pkthdr *header,
const unsigned char *pkt_data)
; //
協議型別
static unsigned char sessionflaga[3] = ; //
保持連線包
static unsigned char sessionflagb[3] = ;
static unsigned char unknow[3] = ;
static unsigned char requestpwda[3] = ; //
請求密碼包
static unsigned char requestpwdb[3] = ;
static unsigned char successa[3] = ; //
成功認證包
static unsigned char successb[3] = ;
static unsigned char byea[3] = ; //
成功斷線包
static unsigned char byeb[3] = ;
// 找包的大小為
60個位元組
, 協議為
eapol的包
if (header->len == 60 && !memcmp(pkt_data + 0x0c, type, 4))
// 判斷是否為對話維持包或需要傳送使用者名稱的包
(這兩種包的特徵是相同的)
if (!memcmp(pkt_data + 0x10, sessionflaga, 3) &&
!memcmp(pkt_data + 0x14, sessionflagb, 3))
} else//
否則就傳送使用者名稱
return; }
// 判斷是否為未知型別的包
if (!memcmp(pkt_data + 0x10, sessionflaga, 3) &&
!memcmp(pkt_data + 0x14, unknow, 3))
// 判斷是否為需要傳送密碼的包
if (!memcmp(pkt_data + 0x10, requestpwda, 3) &&
!memcmp(pkt_data + 0x14, requestpwdb, 3))
// 判斷是否為認證成功的包
code=3
if (!memcmp(pkt_data + 0x10, successa, 3) &&
!memcmp(pkt_data + 0x14, successb, 3))
return; }
// failure
包code=4
if (!memcmp(pkt_data + 0x10, byea, 3))
return; }
else//
其他離線包
return; }
} }
}
c 下 socket 客戶端 程式設計
using system.io using system.net.sockets using system.net private void button4 click object sender,eventargs e s new socket addressfamily.internetwork...
c 下 socket 客戶端 程式設計
using system.io using system.net.sockets using system.net private void button4 click object sender,eventargs e s new socket addressfamily.internetwork...
H3C 華為交換機配置NTP客戶端
h3c clock timezone utc add 8 ntp service unicast server 1.1.1.1 ntp伺服器位址 clock protocol ntp ntp service enable 部分h3c裝置由於時間相差太久的原因,可以先手動配置相近的時間 clock d...