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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? common.h

?? 采用arp欺騙的方法 讓指定計算機無法連接其它任意計算機
?? H
字號:


///////////////////////////////////////////////////////////////
#include <stdlib.h>
#include <stdio.h>
#include <pcap.h>                 //winpcap的頭文件
#include <winsock2.h>
#include <process.h>              //多線程編程的頭文件
#include <windows.h>
#include <Iphlpapi.h>             //提取網關用的頭文件


#pragma comment(lib,"ws2_32")
#pragma comment(lib,"wpcap")
#pragma comment(lib,"IPHlpApi")

#define IPTOSBUFFERS 12               
#define MOSTCHEATNUMBER 256         //最大的欺騙數目
#define ETH_IP       0x0800          //定義各種標識的數值
#define ETH_ARP      0x0806
#define ARP_REPLY    0x0002
#define ARP_REQUEST  0x0001
#define ARP_HARDWARE 0x0001

#pragma pack(push,1)  
typedef struct ethdr                  //以太頭結構
{
    unsigned char   eh_dst[6];
    unsigned char   eh_src[6];
    unsigned short  eh_type;
}ETHDR,*PETHDR;

typedef struct arphdr                  //arp頭結構
{
    unsigned short  arp_hdr;//2      硬件類型
    unsigned short  arp_pro;//2      協議類型
    unsigned char   arp_hln;//1      硬件地址長度
    unsigned char   arp_pln;//1      協議地址長度
    unsigned short  arp_opt;//2      操作類型
    unsigned char   arp_sha[6];//6   發送端以太網地址
    unsigned long   arp_spa;//4      發送端ip地址
    unsigned char   arp_tha[6];//6 //目的以太網地址
    unsigned long   arp_tpa;//4    //目的ip地址
}ARPHDR,*PARPHDR;

typedef struct acttiveIpwithMac          //用于存儲ip與對應mac的結構
{
    acttiveIpwithMac* next;
	unsigned long ip;
	unsigned char mac[6];
}acttiveIpwithMac,*PacttiveIpwithMac;
#pragma pack(pop)


#define  myDebugPrint(x)  OutputDebugString(x)
//獲得網卡控制句柄,獲得對應的ip地址  
pcap_t*   GetNetCardCtrlHandle(unsigned long *LocalIP);
//根據網卡描述字符串,來判斷該網卡是否為物理網卡
BOOL      IsPhysicsNetCard(char *pDescrible);
//將ip地址網絡字節順序轉化為字符串
char*     IPToString(unsigned long in);
BOOL      GetLocalHostMac(pcap_t* pNetCtrlHandle,PacttiveIpwithMac myip);
BOOL      GetMacByIP(pcap_t* pNetCtrlHandle,PacttiveIpwithMac myip,PacttiveIpwithMac pm);
//可以獲得本網卡的ip地址
unsigned long GetNetCardIPAddress(pcap_if_t *pNetCard);
unsigned long GetGateWayIP(unsigned long uLocalIP);

int  macequal(PacttiveIpwithMac m,PacttiveIpwithMac n);
void FreeAddressList(PacttiveIpwithMac pList);


void FreeAddressList(PacttiveIpwithMac pList)
{
	PacttiveIpwithMac p=NULL;	
	while (pList!=NULL)	
	{
		p=pList->next;
		delete pList;
		pList=NULL;
		pList=p;
	}
}

int macequal(PacttiveIpwithMac m,PacttiveIpwithMac n)
{
	int i=0;
    if(memcmp(n->mac,m->mac,6)==0)
	i=1;
	return i;
}

pcap_t*   GetNetCardCtrlHandle(unsigned long *LocalIP)
{
	pcap_if_t    *pNetCard=NULL;
    pcap_if_t    *pAllNetCard=NULL;
	char         szError[PCAP_ERRBUF_SIZE]={0};
	//枚舉系統網卡 ,并判斷物理網卡
	if(pcap_findalldevs(&pAllNetCard, szError)==-1)      
	{					
		myDebugPrint(szError);
		return NULL;
	}
	pNetCard=pAllNetCard;
	while (pNetCard)
	{
		if (pNetCard->description&&IsPhysicsNetCard(pNetCard->description))
		{					
			break;
		}
		pNetCard=pNetCard->next;
	}
	if (pNetCard==NULL)
	{
		pcap_freealldevs(pAllNetCard);
		return NULL;
	}
	DWORD dwIP=0;
	dwIP=GetNetCardIPAddress(pNetCard);
	*LocalIP=dwIP;
	//打開物理網卡 ,獲得網卡控制句柄
	pcap_t* pReturnNetAdapterHandle=NULL;  
	//根據過濾類型  可以設置捕獲的長度
	if((pReturnNetAdapterHandle=pcap_open_live(pNetCard->name,
		70,1,1,szError))==NULL)
	{
		myDebugPrint(szError);
		pcap_freealldevs(pAllNetCard);
		return NULL;
	}
	pcap_freealldevs(pAllNetCard);
	return pReturnNetAdapterHandle;
} 		

BOOL  IsPhysicsNetCard(char *pDescrible)
{
	char szDescription[200]={0};
	int nLen=strlen(pDescrible);	
	memcpy(szDescription,pDescrible,nLen);
	szDescription[nLen]='\0';	
	if (strstr(szDescription,"Virtual")||strstr(szDescription,"PPP"))
	{
		return FALSE;
	}   
	if (strstr(szDescription,"MS")||strstr(szDescription,"Wireless"))
	{
		return FALSE;
	}
	if (strstr(szDescription,"dialup")||strstr(szDescription,"Bluetooth"))
	{
		return FALSE;
	}
	return TRUE;
}
//將ip地址轉化為字符串
char*    IPToString(unsigned long in)
{
	 static char output[12][3*4+3+1];
     static short which;
     u_char *p;
     p = (u_char *)&in;
     which = (which + 1 == 12 ? 0 : which + 1);
     sprintf(output[which], "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
     return output[which];
}

//可以考慮在此函數中為抓包設置過濾規則
//根據物理網卡得到物理網卡控制句柄
//可以獲得本網卡的ip地址
unsigned long  GetNetCardIPAddress(pcap_if_t *pNetCard)
{
	if(pNetCard==NULL)
	{
		myDebugPrint("[GetNICControlHandle][pNetCard==NULL]");
		return NULL;
	}
	unsigned long LocalIP=0;
	pcap_addr_t *a=NULL;
	char szMsg[200]={0};
	char szErrorBuff[200]={0};
	for (a=pNetCard->addresses;a;a=a->next)
	{
		if (a->addr->sa_family==AF_INET)
		{
			if (a->addr)//打印IP地址
			{
				LocalIP=((struct sockaddr_in *)(a->addr))->sin_addr.S_un.S_addr;
				sprintf(szMsg,"\tAddress: %s\n",
			    IPToString(((struct sockaddr_in *)a->addr)->sin_addr.s_addr));
				myDebugPrint(szMsg);			
			}
		}	
	} 
	return LocalIP;
}


unsigned long GetGateWayIP(unsigned long uLocalIP)
{
	PIP_ADAPTER_INFO pAdapterInfo;
    PIP_ADAPTER_INFO pAdapter = NULL;
    DWORD dwRetVal = 0;;
	//ULONG p;
	
    pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );
    ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
	
    // Make an initial call to GetAdaptersInfo to get
    // the necessary size into the ulOutBufLen variable
    if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)   
	{
		free(pAdapterInfo);                          //malloc動態聲請的空間要free
		pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen); 
	}
	
    if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR) 
	{
        pAdapter = pAdapterInfo;
		while (pAdapter) 
		{
			if(uLocalIP==inet_addr(pAdapter->IpAddressList.IpAddress.String))
			{
				dwRetVal=inet_addr(pAdapter->GatewayList.IpAddress.String);
				break;
			}
            pAdapter = pAdapter->Next;
		}
		free(pAdapterInfo);
		return dwRetVal;
	}
	return 0;
}

BOOL  GetMacByIP(pcap_t* pNetCtrlHandle,PacttiveIpwithMac myip,PacttiveIpwithMac pm)
{
	unsigned char   sendbuf[42];
	int    k;
    ETHDR  eth;
    ARPHDR arp;
	for(k=0;k<6;k++)
    {
        eth.eh_dst[k]=0xff;
        eth.eh_src[k]=myip->mac[k];
        arp.arp_sha[k]=myip->mac[k];
        arp.arp_tha[k]=0x00;
    }
    eth.eh_type=htons(ETH_ARP);
    arp.arp_hdr=htons(ARP_HARDWARE);
    arp.arp_pro=htons(ETH_IP);
    arp.arp_hln=6;
    arp.arp_pln=4;
    arp.arp_opt=htons(ARP_REQUEST);
	arp.arp_spa=myip->ip;
	arp.arp_tpa=pm->ip;
    memset(sendbuf,0,sizeof(sendbuf));
    memcpy(sendbuf,&eth,sizeof(eth));  	
	
    memcpy(sendbuf+sizeof(eth),&arp,sizeof(arp));
	if(pcap_sendpacket(pNetCtrlHandle,sendbuf,42)!=0)
	{
		printf("Getallactive ip PacketSendPacket in getmine Error: %d\n",GetLastError());
		return FALSE;
	}
	//receive arp reply
	struct pcap_pkthdr *  pkt_header;
	u_char * pkt_data;  
	int i;      
	while((pcap_next_ex(pNetCtrlHandle,&pkt_header,(const u_char**)&pkt_data))>0)
    {   
        if(*(unsigned short *)(pkt_data+12)==htons(ETH_ARP)&&*(unsigned short*)(pkt_data+20)==htons(ARP_REPLY)&&*(unsigned long*)(pkt_data+38)==myip->ip)
		{
			
			for(i=0;i<6;i++)
			{
				pm->mac[i]=*(unsigned char*)(pkt_data+22+i);
			}		
			break;
		}		
	}
	return TRUE;	
}


BOOL GetLocalHostMac(pcap_t* pNetCtrlHandle,PacttiveIpwithMac myip)
{
	unsigned char   sendbuf[42];
    int    i=7,k;
    ETHDR  eth;
    ARPHDR arp;
	struct pcap_pkthdr *  pkt_header;
	u_char * pkt_data; 
    for(k=0;k<6;k++)
    {
        eth.eh_dst[k]=0xff;
        eth.eh_src[k]=0x0f;
        arp.arp_sha[k]=0x0f;
        arp.arp_tha[k]=0x00;
    }
    eth.eh_type=htons(ETH_ARP);
    arp.arp_hdr=htons(ARP_HARDWARE);
    arp.arp_pro=htons(ETH_IP);
    arp.arp_hln=6;
    arp.arp_pln=4;
    arp.arp_opt=htons(ARP_REQUEST);
    arp.arp_tpa=myip->ip;
    arp.arp_spa=inet_addr("127.0.0.2");  //隨便設的請求方ip
    memset(sendbuf,0,sizeof(sendbuf));
    memcpy(sendbuf,&eth,sizeof(eth));
    memcpy(sendbuf+sizeof(eth),&arp,sizeof(arp));
    if(pcap_sendpacket(pNetCtrlHandle,sendbuf,42)==0)
	{
		myDebugPrint("PacketSend succeed\n\n");
		//AfxMessageBox("PacketSend succeed");
	}
	else
	{
		//printf("PacketSendPacket in getmine Error: %d\n",GetLastError());
		myDebugPrint("PacketSendPacket in getmine Error");
		return 0;
	}	
	while((k=pcap_next_ex(pNetCtrlHandle,&pkt_header,(const u_char**)&pkt_data))>=0)
    {       
        if(*(unsigned short *)(pkt_data+12)==htons(ETH_ARP)&&*(unsigned short*)(pkt_data+20)==htons(ARP_REPLY)&&*(unsigned long*)(pkt_data+38)==inet_addr("127.0.0.2"))
		{
			
			for(i=0;i<6;i++)
			{
				myip->mac[i]=*(unsigned char*)(pkt_data+22+i);
			}
			break;
		}
    }
	if(i==6)
    {
		return 1;
	}
	else
	{
		return 0;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99r国产精品| 国产精品一区二区久久精品爱涩 | 91视频国产观看| 国产乱码字幕精品高清av| 免费观看在线色综合| 免费成人深夜小野草| 免费精品视频在线| 国内偷窥港台综合视频在线播放| 奇米色一区二区三区四区| 丝瓜av网站精品一区二区| 日本欧美一区二区三区| 久久狠狠亚洲综合| 国产在线播精品第三| 成人精品免费看| 色94色欧美sute亚洲13| 欧美视频三区在线播放| 欧美男男青年gay1069videost | 图片区日韩欧美亚洲| 亚洲www啪成人一区二区麻豆| 亚洲狠狠爱一区二区三区| 亚洲午夜激情网站| 日韩av中文字幕一区二区三区| 日本不卡在线视频| 国产91精品露脸国语对白| 国产凹凸在线观看一区二区| 91蜜桃免费观看视频| 欧美高清激情brazzers| 在线播放亚洲一区| 久久夜色精品一区| 亚洲欧美在线aaa| 日韩综合一区二区| 国产成人免费视频网站| 色综合久久88色综合天天| 91精品国产综合久久久久| 中文字幕第一区二区| 亚洲成人自拍偷拍| 久久福利视频一区二区| av欧美精品.com| 宅男在线国产精品| 亚洲人xxxx| 国产在线一区二区| 欧美三级视频在线| 国产精品美女久久福利网站| 亚洲电影一区二区| 成人a免费在线看| 精品99999| 午夜国产精品一区| 91啦中文在线观看| 中文在线一区二区| 日韩在线一二三区| 日本二三区不卡| 中文字幕的久久| 国产精品中文字幕日韩精品| 91精品中文字幕一区二区三区| 亚洲日本在线天堂| 石原莉奈一区二区三区在线观看| 成人免费看黄yyy456| 日韩欧美一区二区在线视频| 亚洲激情男女视频| www..com久久爱| 国产欧美日产一区| 久久成人av少妇免费| 欧美日韩黄色影视| 亚洲制服丝袜一区| 色综合久久66| 日韩毛片在线免费观看| 成人午夜又粗又硬又大| 2欧美一区二区三区在线观看视频| 午夜精品久久久久久久蜜桃app| 99re8在线精品视频免费播放| 久久综合国产精品| 韩国女主播一区二区三区| 欧美不卡一区二区三区| 喷白浆一区二区| 欧美一区二区三区在线| 日本一道高清亚洲日美韩| 欧美日韩激情一区二区| 日韩av一二三| 欧美精品一区二区三区久久久| 久久99蜜桃精品| 久久久久免费观看| 国产91精品精华液一区二区三区| 国产日产欧产精品推荐色| 国产在线视频一区二区三区| 国产喂奶挤奶一区二区三区| 高清在线成人网| 亚洲欧美偷拍三级| 欧美视频一区二区| 久久狠狠亚洲综合| 国产精品沙发午睡系列990531| 91在线观看下载| 亚洲第一av色| 久久综合久久99| 成人黄色软件下载| 一区二区三区日韩欧美精品| 欧美日韩一区在线| 狠狠狠色丁香婷婷综合激情| 国产精品无码永久免费888| 99视频在线精品| 偷拍与自拍一区| 久久夜色精品国产噜噜av| 9色porny自拍视频一区二区| 亚洲综合丝袜美腿| 国产亚洲综合色| 99精品视频中文字幕| 香蕉久久夜色精品国产使用方法 | 欧美一区二区三区日韩视频| 激情综合色综合久久| 中文字幕亚洲不卡| 91精品国产综合久久精品app| 国产一区二区在线观看视频| 成人免费一区二区三区视频| 69p69国产精品| 成人免费av网站| 老色鬼精品视频在线观看播放| 国产精品色噜噜| 日韩视频在线你懂得| 99久久夜色精品国产网站| 蜜臀91精品一区二区三区| 成人欧美一区二区三区1314| 欧美一区二区福利在线| 一本到不卡免费一区二区| 国产精品一级在线| 亚州成人在线电影| 亚洲欧美日韩在线播放| 欧美tickle裸体挠脚心vk| 在线欧美日韩精品| 成人激情午夜影院| 国产一区二区看久久| 日韩高清电影一区| 亚洲综合久久久久| 一区在线观看免费| 久久久久久久久久看片| 日韩视频在线一区二区| 欧美日韩国产影片| 欧美亚洲一区二区三区四区| 丁香婷婷综合色啪| 国产一区二区三区在线观看免费 | 国产精品一区一区| 久久精品久久99精品久久| 亚洲成av人片一区二区梦乃| 亚洲三级视频在线观看| 国产精品婷婷午夜在线观看| 精品国产91乱码一区二区三区 | 国产精品嫩草久久久久| 久久综合999| 亚洲精品在线一区二区| 日韩午夜激情免费电影| 日韩一区二区三区免费看| 欧美精品日韩一区| 欧美日韩高清一区二区不卡 | 美女高潮久久久| 日韩 欧美一区二区三区| 亚洲成人动漫一区| 日韩中文字幕1| 日韩国产高清影视| 麻豆精品国产91久久久久久| 免费观看在线综合色| 伦理电影国产精品| 黄一区二区三区| 国产精品亚洲а∨天堂免在线| 国产精品77777| 91在线播放网址| 色久优优欧美色久优优| 欧美亚洲国产一区二区三区va| 欧亚洲嫩模精品一区三区| 欧美日韩激情一区| 精品国产91洋老外米糕| 日本一区二区三区四区在线视频| 中文字幕不卡在线观看| 亚洲男人的天堂在线观看| 亚洲一区二区精品久久av| 日韩av不卡在线观看| 国产福利一区在线观看| 91激情在线视频| 欧美一级在线观看| 中文无字幕一区二区三区 | 国产精品正在播放| 91论坛在线播放| 欧美一区二区三区系列电影| 久久久久久久久97黄色工厂| 亚洲欧洲日韩在线| 日本中文字幕不卡| 福利一区二区在线| 欧美性猛交一区二区三区精品| 欧美精品一区视频| 亚洲午夜电影在线观看| 国产老女人精品毛片久久| 在线观看91视频| 国产日韩三级在线| 亚洲一级二级在线| 丁香亚洲综合激情啪啪综合| 在线观看不卡一区| 中文字幕欧美日韩一区| 男人的天堂久久精品| 成人a级免费电影| 精品国产一二三| 亚洲一二三区在线观看| 成人毛片在线观看| 久久精品亚洲精品国产欧美kt∨|