亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? arp.cpp

?? ARP協(xié)議獲得局域網(wǎng)內(nèi)活動主機物理地址程序本程序需要安裝Winpcap
?? CPP
字號:

#include "arp.h"
#include "StdAfx.h"
#pragma comment(lib, "wpcap")
extern string strSelDeviceName;
extern unsigned char* bLocalMac;
extern pcap_if_t* pDevGlobalHandle;
extern int nThreadSignal;
extern int GetMacSignal;


char* IpToStr(unsigned long ulIP)	
{							
	static char output[IPTOSBUFFERS][3 * 4 + 3 + 1];
	static short which;									
	unsigned char* chIP;
	chIP = (unsigned char*)&ulIP;							
	which = (which + 1 == IPTOSBUFFERS ? 0 : which + 1); 
	sprintf(output[which], "%d.%d.%d.%d", chIP[0], chIP[1], chIP[2], chIP[3]); 
	return output[which];
}
char* MacToStr(unsigned char* chMAC)
{							
	static unsigned char uMac[18];
	for(int i=0; i < 17; i++)
	{
		if ((i+1) % 3)
		{
			if (!(i % 3))
			{
				if ((chMAC[i/3] >> 4) < 0x0A)
				{
					uMac[i] = (chMAC[i/3] >> 4) + 48;
				}
				else
				{
					uMac[i] = (chMAC[i/3] >> 4) + 55;
				}
				if ((chMAC[i/3] & 0x0F) < 0x0A)
				{
					uMac[i+1] = (chMAC[i/3] & 0x0F) + 48;
				}
				else
				{
					uMac[i+1] = (chMAC[i/3] & 0x0F) + 55;
				}
			}
		}
		else
		{
			uMac[i] = '-';
		}
	}
	uMac[17] = '\0';
	return (char*)uMac;
}

char* DelSpace(char* in)
{								
	int strLen = 0;
	while(in[strLen++] != '\0');
	static char chTemp[10240];
	if(10240<strLen)
	{
		MessageBox(NULL,"Over Flow ","Error",MB_OK|MB_ICONERROR);
		return NULL;
	}
	int i = 0;
	int j = 0;
	while(in[i] != '\0')
	{
		if(in[i] != ' ')
		{
			chTemp[j++] = in[i++];
		}
		else
		{
			chTemp[j++] = in[i++];
			while(in[i] == ' ')i++;					
		}
	}
	chTemp[j] = '\0';
	return chTemp;
}

unsigned char* BuildArpRequestPacket(unsigned char* source_mac, unsigned char* arp_sha, unsigned long chLocalIP, unsigned long arp_tpa, int PackSize)
{	//封裝ARP請求包
	static arp_packet arpPackStru;
	static const arp_packet arpDefaultPack= {ETH_HRD_DEFAULT,ARP_HRD_DEFAULT};
	memcpy(&arpPackStru,&arpDefaultPack,sizeof(arpDefaultPack));
	memcpy(arpPackStru.eth.source_mac,source_mac,6);
	memcpy(arpPackStru.arp.sour_addr,arp_sha,6);
	arpPackStru.arp.sour_ip=chLocalIP;	
	arpPackStru.arp.dest_ip=arp_tpa;
	return (unsigned char *)&arpPackStru;
}



unsigned char* GetSelfMac(char* pDevName, unsigned long chLocalIP)
{		//獲得自己的MAC
	pcap_t* pAdaptHandle;														//打開網(wǎng)卡適配器時用
	char errbuf[PCAP_ERRBUF_SIZE + 1]; 
	if((pAdaptHandle = pcap_open_live(pDevName, 60, 1, 100, errbuf)) == NULL)
	{	
		MessageBox(NULL, "無法打開適配器,可能與之不兼容!", "Note", MB_OK);
		return NULL;
	}
	struct pcap_pkthdr *header;
	const u_char *pkt_data;
	int res;
	unsigned short arp_op;
	static unsigned char arp_sha[6];
	unsigned long arp_spa = 0;
	unsigned long arp_tpa = 0;
	unsigned char source_mac[6] = {0,0,0,0,0,0};
	unsigned char* arp_packet_for_self;
	arp_packet_for_self = BuildArpRequestPacket(source_mac, source_mac, SPECIAL, chLocalIP, 60);
	while(!GetMacSignal)
	{
		pcap_sendpacket(pAdaptHandle, arp_packet_for_self, 60);
		Sleep(10);										
		res = pcap_next_ex(pAdaptHandle, &header, &pkt_data);
		if(res == 0)
		{
			continue;
		}
		memcpy(&arp_op, pkt_data + 20, 2);
		memcpy(arp_sha, pkt_data + 22, 6);
		memcpy(&arp_spa, pkt_data + 28, 4);	
		memcpy(&arp_tpa, pkt_data + 38, 4);	
		if(arp_op == htons(ARP_REPLY) && arp_spa == chLocalIP && arp_tpa == SPECIAL)
		{	
			GetMacSignal = 1;
			pcap_close(pAdaptHandle);
			return arp_sha;
		}
		Sleep(100);																		//若不成功再等100ms再發(fā),讓網(wǎng)卡歇歇:) 20061025
	}
	pcap_close(pAdaptHandle);
	return arp_sha;
}

void SendArpRequest(pcap_if_t* pDev, unsigned char* bLocalMac)
{	//發(fā)送ARP請求
	pcap_addr_t* pAdr = 0;
	unsigned long chLocalIp = 0;								//存放本地ip地址
	unsigned long arp_tpa = 0;
	unsigned long snd_tpa = 0;
	unsigned long nlNetMask = 0;
	int netsize = 0;
	const char* pDevName = strSelDeviceName.c_str();
	pcap_t* pAdaptHandle;								//打開網(wǎng)卡適配器時用
	char errbuf[PCAP_ERRBUF_SIZE + 1]; 
	if((pAdaptHandle = pcap_open_live(pDev->name, 60, 0, 100, errbuf)) == NULL)
	{	
		MessageBox(NULL, "無法打開適配器,可能與之不兼容!", "Send", MB_OK);
		return;
	}
	unsigned char* arp_packet_for_req;
	arp_packet_for_req = BuildArpRequestPacket(bLocalMac, bLocalMac, chLocalIp, chLocalIp, 60);	//構(gòu)造包,并將只更改倒數(shù)第二個形參,在字符串里對之進行局部更改!效率高得多,不要重復(fù)申請STRUCT,會浪費大量內(nèi)存空間20061024
	unsigned long ulOldMask=0;
	for (pAdr = pDev->addresses; pAdr; pAdr = pAdr->next)
	{
		if (!nThreadSignal)
		{
			break;
		}
		chLocalIp = ((struct sockaddr_in *)pAdr->addr)->sin_addr.s_addr;			//得到本地ip
		if (!chLocalIp) 
		{
			continue;
		}
		nlNetMask = ((struct sockaddr_in *)(pAdr->netmask))->sin_addr.S_un.S_addr;	//得到子網(wǎng)掩碼
		if(ulOldMask==nlNetMask)
		{
			continue;
		}
		ulOldMask=nlNetMask;
		netsize = ~ntohl(nlNetMask);
		arp_tpa = ntohl(chLocalIp & nlNetMask);
	//	memcpy(arp_packet_for_req + 28, &chLocalIp, 4);								//將字串中源IP設(shè)為本次得到的本地IP
		for (int i=0; i < netsize; i++)
		{
			if (!nThreadSignal) 
			{
				break;
			}
			arp_tpa++;
			snd_tpa = htonl(arp_tpa);
			memcpy(arp_packet_for_req + 38, &snd_tpa, 4);							//目的IP在子網(wǎng)范圍內(nèi)按序增長	
			pcap_sendpacket(pAdaptHandle, arp_packet_for_req, 60);
			Sleep(5);
		}
	}
}

UINT StartArpScan(LPVOID mainClass)
{
	AfxGetApp()->m_pMainWnd->SendMessage(WM_PACKET, 0, 1);
	SendArpRequest(pDevGlobalHandle, bLocalMac);									//對選中設(shè)備的所有綁定的IP網(wǎng)段進行ARP請求
	AfxGetApp()->m_pMainWnd->SendMessage(WM_PACKET, 0, 2);
	return 0;
}

UINT WaitForArpRepeatPacket(LPVOID mainClass)
{								
	pcap_t* pAdaptHandle;														//打開網(wǎng)卡適配器時用
	const char* pDevName = strSelDeviceName.c_str();
	char errbuf[PCAP_ERRBUF_SIZE + 1]; 
	if((pAdaptHandle = pcap_open_live(pDevName, 60, 0, 100, errbuf)) == NULL)
	{	
		MessageBox(NULL, "無法打開適配器,可能與之不兼容!", "wait", MB_OK);
		return -1;
	}
	string ipWithMac;
	char* filter = "ether proto\\arp";
	bpf_program fcode;
	int res;
	unsigned short arp_op = 0;
	unsigned char arp_sha [6];
	unsigned long arp_spa = 0;
	struct pcap_pkthdr *header;
	const u_char *pkt_data;
	if (pcap_compile(pAdaptHandle, &fcode, filter, 1, (unsigned long)(0xFFFF0000)) < 0)
	{
		MessageBox(NULL,"過濾條件語法錯誤!", "wait", MB_OK);
		return -1;
	}
	//set the filter
	if (pcap_setfilter(pAdaptHandle, &fcode) < 0)
	{
		MessageBox(NULL,"適配器與過濾條件不兼容!", "wait", MB_OK);
		return -1;
	}
	while(1)
	{
		if (!nThreadSignal) 
		{
			break;
		}
		int i = 0;
		ipWithMac = "";
		res = pcap_next_ex(pAdaptHandle, &header, &pkt_data);
		if (!res)
		{
			continue;
		}
		memcpy(&arp_op, pkt_data + 20, 2);
		memcpy(arp_sha, pkt_data + 22, 6);
		memcpy(&arp_spa, pkt_data + 28, 4);
		ipWithMac += IpToStr(arp_spa);
		for (int j = strlen(IpToStr(arp_spa)); j < 16; j++)
		{
			ipWithMac += " ";
		}
		ipWithMac += "  --*->   ";
		ipWithMac += MacToStr(arp_sha);
		for (i = 6; i > 0; i--)
		{												
			if (arp_sha[i - 1] != bLocalMac[i - 1])
			{
				break;
			}
		}
		if(arp_op == htons(ARP_REPLY) && i)
		{
			AfxGetApp()->m_pMainWnd->SendMessage(WM_PACKET, WPARAM(&ipWithMac), 0);
		}
	}
	return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女视频一区二区| 国产综合久久久久久鬼色| av在线不卡免费看| 日韩中文字幕麻豆| 欧美唯美清纯偷拍| 午夜亚洲国产au精品一区二区| 欧美三级日韩在线| 日韩va亚洲va欧美va久久| 日韩欧美中文一区二区| 国产一区二区三区视频在线播放| 2023国产精华国产精品| youjizz久久| 亚洲国产视频a| 日韩欧美在线观看一区二区三区| 国产一区二区三区久久久 | 国产精品日日摸夜夜摸av| 国产精品一区在线观看你懂的| 久久综合狠狠综合| 91在线视频播放| 亚洲国产精品久久久久婷婷884| 欧美一区二区观看视频| 国产98色在线|日韩| 亚洲综合视频在线| 日韩美女视频在线| 99久久综合国产精品| 午夜精品一区二区三区三上悠亚| 日韩精品一区二区三区老鸭窝| 成人综合婷婷国产精品久久蜜臀 | av不卡一区二区三区| 亚洲国产中文字幕在线视频综合 | 色婷婷综合激情| 精一区二区三区| 亚洲精品一区二区三区在线观看| 国产91色综合久久免费分享| 亚洲最大的成人av| 久久免费看少妇高潮| 在线观看免费一区| 久久66热re国产| 亚洲精品视频免费观看| 精品三级av在线| 色综合久久精品| 国产麻豆日韩欧美久久| 午夜精品福利在线| 国产精品护士白丝一区av| 欧美tk—视频vk| 欧美性一二三区| 成人激情视频网站| 久久99国产精品免费| 亚洲福利视频一区| 国产精品国产三级国产普通话99| 日韩美女一区二区三区四区| 欧美亚洲一区二区三区四区| 丰满少妇在线播放bd日韩电影| 日韩高清一区二区| 亚洲一区免费视频| 国产精品国产三级国产普通话蜜臀 | 91国模大尺度私拍在线视频| 国产最新精品免费| 青青青爽久久午夜综合久久午夜 | 欧洲精品视频在线观看| 国产精品资源在线看| 日本不卡1234视频| 婷婷成人激情在线网| 亚洲精品乱码久久久久久黑人 | 欧美xxx久久| 欧美日韩在线三区| 在线观看亚洲a| 色天天综合色天天久久| av不卡免费电影| 成人免费视频视频在线观看免费| 黑人精品欧美一区二区蜜桃| 免播放器亚洲一区| 捆绑调教美女网站视频一区| 伦理电影国产精品| 久久国产婷婷国产香蕉| 美女看a上一区| 精品一区二区三区在线观看国产| 日本强好片久久久久久aaa| 亚洲一卡二卡三卡四卡五卡| 亚洲自拍偷拍综合| 亚洲国产另类av| 亚洲成年人影院| 日韩精品免费视频人成| 日本视频一区二区| 精品综合免费视频观看| 国产精品99久久久久久久vr| 国产成人精品一区二区三区网站观看| 国产一区视频网站| 国产成人精品一区二区三区四区| 成人污视频在线观看| 成人免费观看av| 91麻豆精品秘密| 欧美色图免费看| 538在线一区二区精品国产| 欧美一区三区四区| 日韩欧美一区二区不卡| 国产亚洲成aⅴ人片在线观看| 国产精品三级av| 亚洲小说欧美激情另类| 日本欧美大码aⅴ在线播放| 久久er99热精品一区二区| 国产精品一区二区x88av| 不卡在线观看av| 欧美色倩网站大全免费| 欧美一区二区三区啪啪| 久久天天做天天爱综合色| 国产精品蜜臀在线观看| 亚洲综合一区二区三区| 免费欧美日韩国产三级电影| 国产成人三级在线观看| 在线一区二区观看| 日韩免费高清电影| 日韩毛片视频在线看| 日韩国产一二三区| 成人做爰69片免费看网站| 欧美日韩一区二区电影| 亚洲第一搞黄网站| 国产一区二区在线观看免费| 色婷婷av一区二区三区大白胸 | 亚洲精品久久久蜜桃| 视频一区免费在线观看| 高清日韩电视剧大全免费| 欧美色成人综合| 国产欧美日韩另类一区| 亚洲福利视频一区| 成人激情免费视频| 欧美一区二区黄| 一区二区三区中文免费| 国产一二精品视频| 欧美色图片你懂的| 国产精品久久久久久久久久久免费看| 天天免费综合色| 91麻豆国产在线观看| 久久久一区二区| 日韩高清一区在线| 欧洲亚洲国产日韩| **性色生活片久久毛片| 紧缚捆绑精品一区二区| 欧美日韩国产在线播放网站| 中文字幕在线一区免费| 激情综合一区二区三区| 欧美日韩在线播放一区| 中文字幕日韩av资源站| 狠狠网亚洲精品| 制服丝袜亚洲色图| 一区二区三区四区在线播放| 成人性生交大片免费| 欧美va在线播放| 秋霞电影网一区二区| 欧美亚洲国产bt| 亚洲免费资源在线播放| 成人avav影音| 中文字幕不卡在线播放| 国产麻豆成人精品| 久久中文字幕电影| 玖玖九九国产精品| 日韩一区二区在线播放| 亚洲chinese男男1069| 欧美在线免费视屏| 一区二区三区 在线观看视频| 成人黄色在线网站| 日本一区二区三区四区在线视频| 国内精品伊人久久久久av一坑| 日韩一区二区在线观看| 免费av网站大全久久| 欧美一区二区三区系列电影| 日韩av电影免费观看高清完整版 | 免费成人你懂的| 日韩精品一区国产麻豆| 日韩高清不卡一区| 91精品国产品国语在线不卡| 日韩极品在线观看| 日韩一区二区三区四区| 蜜桃久久久久久| 精品精品欲导航| 激情久久五月天| 欧美韩国日本不卡| 99久久久久免费精品国产 | 一区二区三区四区中文字幕| 色哦色哦哦色天天综合| 天堂成人国产精品一区| 91精品黄色片免费大全| 精品一区二区在线免费观看| 国产日韩欧美综合在线| 成人一区二区三区在线观看| 亚洲色图欧美激情| 欧美日韩一区久久| 蜜桃91丨九色丨蝌蚪91桃色| 久久久亚洲国产美女国产盗摄 | 日本成人中文字幕| 欧美日本乱大交xxxxx| 日本不卡一二三| 久久久综合视频| 91视频免费播放| 午夜精品福利视频网站| 欧美精品一区二区三区四区| 成人综合婷婷国产精品久久免费| 亚洲乱码国产乱码精品精98午夜 | 国产午夜精品一区二区三区四区| 成人成人成人在线视频|