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

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

?? listendlg.cpp

?? 一個局域網檢測程序,制作的非常的好,可以截獲網內所有數據報,并進行內容分析
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// listenDlg.cpp : implementation file
//

#include "stdafx.h"
#include "listen.h"
#include "listenDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CListenDlg dialog

BOOL b_IsRun=FALSE;

UINT RecvIpPro(LPVOID lpParam);
char* GetIp();
CString GetNowTime();
BOOL CreateLogFile(char *strInfo,char *strFileName="log.txt");
BOOL CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,
						 WPARAM wParam,LPARAM lParam);

CListenDlg::CListenDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CListenDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CListenDlg)
	m_iWprot = 0;
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_IsAllPort=TRUE;
	m_IsAllIp=TRUE;
	m_IsAllProto=TRUE;
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CListenDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CListenDlg)
	DDX_Control(pDX, IDC_LIST1, m_NewList);
	DDX_Text(pDX, IDC_EDIT1, m_iWprot);
	DDV_MinMaxInt(pDX, m_iWprot, 0, 10000);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CListenDlg, CDialog)
	//{{AFX_MSG_MAP(CListenDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
	ON_BN_CLICKED(IDC_RADIO5, OnRadio5)
	ON_BN_CLICKED(IDC_RADIO6, OnRadio6)
	ON_BN_CLICKED(IDC_RADIO7, OnRadio7)
	ON_BN_CLICKED(IDC_RADIO8, OnRadio8)
	ON_COMMAND(ID_COPY_SIP, OnCopySip)
	ON_COMMAND(ID_COPY_DIP, OnCopyDip)
	ON_WM_SYSCOMMAND()
	ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList1)
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CListenDlg message handlers

BOOL CListenDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	if(!InitSock())
		return FALSE;
	//添加系統菜單
	CMenu *pMenu=GetSystemMenu(FALSE);
	AppendMenu(pMenu->m_hMenu,MF_SEPARATOR,0,NULL);
	AppendMenu(pMenu->m_hMenu,MF_STRING,IDM_SYSMENU,"關于...");

	//初始化控件
	((CButton *)GetDlgItem(IDC_RADIO2))->SetCheck(TRUE);
	((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
	((CButton *)GetDlgItem(IDC_RADIO5))->SetCheck(TRUE);

	//初始化臨界區對象
	InitializeCriticalSection(&m_ls);
	//建立顯示IP包窗口
	m_IpShowDlg.Create(IDD_IPDATA,this);
	m_IpShowDlg.ShowWindow(SW_SHOW);
	CRect rect;
	GetClientRect(&rect);
//	ClientToScreen(&rect);
	m_IpShowDlg.MoveWindow(10,265,rect.right-20,100);
	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CListenDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CListenDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CListenDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	CWinThread *pThread=NULL;
	CButton* pBtn=(CButton *)GetDlgItem(IDC_BUTTON1);
	int n=pBtn->GetCheck();
	m_HostIp=GetIp(); //得到本機IP
	if(1==n) //開始監聽
	{
		if(CreateSock()!=0) //建立
		{
			AfxMessageBox("WinSock設置失敗");
			DestroyWindow();
		}
		else
		{
			b_IsRun=TRUE;
			pThread=AfxBeginThread(RecvIpPro,this);
		}
		pBtn->SetWindowText("停止監聽");
	}
	else //停止監聽
	{
		b_IsRun=FALSE;
		if(pThread)
		{
			TerminateThread(pThread->m_hThread, 0);
			CloseHandle(pThread->m_hThread);
		}

		if(m_RawSock)
			closesocket(m_RawSock);
		pBtn->SetWindowText("開始監聽");
	}


}
//在線程沖中不斷接受IP包
UINT RecvIpPro(LPVOID lpParam)
{
	int err=0;
	int recvLen;
	CListenDlg* pDlg=(CListenDlg*)lpParam;
	char recvBuf[MAX_PACK_LEN]={0};
	while(b_IsRun)
	{
		recvLen=recv(pDlg->m_RawSock,recvBuf,MAX_PACK_LEN,0);//接受數據
		
		if(err==SOCKET_ERROR)
		{
			if(WSAGetLastError()==WSAEWOULDBLOCK) //如果錯誤為阻塞那么將繼續接受
				continue;
			break;
		}
		//處理已經接受到的IP包
		EnterCriticalSection(&pDlg->m_ls);
		pDlg->SplitIpPack(recvBuf,recvLen); //分解IP包
		pDlg->ShowIpInfo(recvBuf,recvLen); //顯示數據
		LeaveCriticalSection(&pDlg->m_ls);
	}
	return 0;

}

//加載SOCK
BOOL CListenDlg::InitSock()
{
	WSADATA wsaData;
	int err;
	if((err=WSAStartup(MAKEWORD(2,2),&wsaData))!=0) //加載失敗
		return FALSE;
	if (LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion) != 2) 
	{
		WSACleanup();//未能要求到所需的版本
		return FALSE;
	}
	return TRUE;
}

//建立原始套接字
int CListenDlg::CreateSock()
{
	int err;
	char name[10];
	hostent *pHostent;
	int port=8310;
	SOCKADDR_IN sockaddr;
	m_RawSock=socket(AF_INET,SOCK_RAW,IPPROTO_IP);
	if(m_RawSock==INVALID_SOCKET)
	{
		return WSAGetLastError(); //socket創建失敗
	}
	
	err=gethostname(name,10);
	if(err==SOCKET_ERROR)
	{
		return WSAGetLastError(); //取本機用戶名失敗
	}

	pHostent=gethostbyname (name);

	sockaddr.sin_family=AF_INET;
	sockaddr.sin_port=htons(port);
	memcpy(&sockaddr.sin_addr.s_addr,pHostent->h_addr_list[0],
		pHostent->h_length);

	//free(pHostent);
	
	err=bind(m_RawSock,(SOCKADDR *)&sockaddr,sizeof(sockaddr));//綁定
	if(err==SOCKET_ERROR)
	{
		return WSAGetLastError(); //取本機用戶名失敗
	}
	BOOL bOptval=TRUE;

	//設置套節字選項
	setsockopt(m_RawSock,SOL_SOCKET,SO_REUSEADDR,(char*)&bOptval,sizeof(bOptval));
	err=setsockopt(m_RawSock,IPPROTO_IP,IP_HDRINCL,(char*)&bOptval, //IP_HDRINCL該選項使之能操作IP頭
		sizeof(bOptval));
	if(err==SOCKET_ERROR)
	{
		return WSAGetLastError(); //設置套節字選項失敗
	}

	//把網卡置于混雜模式。獲取IO操作的相關信息
	DWORD dwBufferLen[10] ;
	DWORD dwBufferInLen = 1 ;
	DWORD dwBytesReturned = 0 ;
	err=WSAIoctl (
		m_RawSock,                                               
		SIO_RCVALL,       //設置SOCK_RAW為SIO_RCVALL,以便接收所有的IP包                           
		&dwBufferInLen,                                     
		sizeof(dwBufferInLen),                                       
		&dwBufferLen,                                    
		sizeof(dwBufferLen),                                      
		&dwBytesReturned,                              
		NULL,                           
		NULL  
		);//最后兩參數設置非阻塞


	if(err==SOCKET_ERROR)
	{
		return WSAGetLastError(); //設置套節字選項失敗
	}
	return 0;
}

//分解IP包
void CListenDlg::SplitIpPack(char *pData, int len)
{
	IP_HEADER* pIpHead;
	pIpHead=(IP_HEADER*)pData; //轉為IP頭結構
	SOCKADDR_IN saSource,saDest; //中間變量分別為源IP地址結構和目標IP地址結構 

	//得到包中協議
	int iProtocol;
	iProtocol=pIpHead->proto;
	//得到協議字符形式表示m_szProtocol
	strncpy(m_szProtocol,CheckProtocol(iProtocol),MAX_PROTO_TEXT_LEN);


	//得到源IP
	saSource.sin_addr.s_addr=pIpHead->sourceIP;
	strncpy(m_szSourceIP,inet_ntoa(saSource.sin_addr),MAX_ADDR_LEN);

	//得到目標IP
	saDest.sin_addr.s_addr=pIpHead->destIP;
	strncpy(m_szDestIP,inet_ntoa(saDest.sin_addr),MAX_ADDR_LEN);

	//得到TTL
	int ttl;
	ttl=pIpHead->ttl;
	wsprintf(m_szTTL,"%d",ttl);

	//得到頭長度
	int ihLen=sizeof(unsigned long)*(pIpHead->h_lenver & 0xf);

	m_ihLen=ihLen;
	unsigned short srcPort=0,destPort=0;
	switch(iProtocol) {
	case IPPROTO_TCP:
		TCP_HEADER* pTcpHead;
		pTcpHead=(TCP_HEADER*)(pData+ihLen);
		srcPort=ntohs(pTcpHead->th_sport);
		destPort=ntohs(pTcpHead->th_dport);
		wsprintf(m_szSourcePort,"%d",srcPort);
		wsprintf(m_szDestPort,"%d",destPort);
		break;
	case IPPROTO_UDP:
		UDP_HEADER* pUdpHead;
		pUdpHead=(UDP_HEADER*)(pData+ihLen);
		srcPort=ntohs(pUdpHead->uh_sport);
		destPort=ntohs(pUdpHead->uh_dport);	
		wsprintf(m_szSourcePort,"%d",srcPort);
		wsprintf(m_szDestPort,"%d",destPort);
		break;
	case IPPROTO_ICMP:
		ICMP_HEADER* pIcmpHead;
		pIcmpHead=(ICMP_HEADER*)(pData+ihLen);
		wsprintf(m_szSourcePort,"%s","");
		wsprintf(m_szDestPort,"%s","");
		break;
	default:
		wsprintf(m_szSourcePort,"%s","");
		wsprintf(m_szDestPort,"%s","");
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91对白在线观看九色| 7777精品伊人久久久大香线蕉| 91在线精品秘密一区二区| 欧美色图第一页| 国产欧美日韩激情| 久久99久久精品欧美| 91久久精品一区二区三| 国产欧美久久久精品影院| 日韩av网站在线观看| 91女厕偷拍女厕偷拍高清| 精品国产伦一区二区三区免费| 亚洲福利电影网| 色视频欧美一区二区三区| 国产精品久久久久久久久动漫| 久久激五月天综合精品| 91精品欧美一区二区三区综合在| 亚洲猫色日本管| 暴力调教一区二区三区| 久久精品人人爽人人爽| 精品一区二区三区视频| 在线不卡一区二区| 亚洲成人av一区二区三区| 欧美性大战久久久久久久 | 欧美美女黄视频| 亚洲人亚洲人成电影网站色| 成人免费观看男女羞羞视频| 国产三级一区二区| 国产福利一区在线| 国产欧美精品一区aⅴ影院| 国产福利一区二区三区在线视频| 久久久久久亚洲综合| 国产精品12区| 中文字幕视频一区二区三区久| 成人午夜视频免费看| 国产精品免费视频观看| 丁香另类激情小说| 亚洲欧美日韩中文播放| 欧美综合天天夜夜久久| 日日摸夜夜添夜夜添亚洲女人| 欧美日韩国产在线播放网站| 石原莉奈在线亚洲三区| 欧美成人精精品一区二区频| 国内外成人在线视频| 国产欧美日产一区| 91影视在线播放| 亚洲综合一区在线| 69堂亚洲精品首页| 国产黄色成人av| 亚洲欧美经典视频| 欧美精品久久久久久久久老牛影院 | 夜夜嗨av一区二区三区四季av| 欧美性大战xxxxx久久久| 午夜精品免费在线| 久久综合中文字幕| jlzzjlzz欧美大全| 亚洲国产日韩a在线播放性色| 日韩欧美一区中文| 不卡一区二区三区四区| 亚洲一二三四在线观看| 日韩精品中午字幕| 99这里只有精品| 奇米精品一区二区三区四区 | 一级女性全黄久久生活片免费| 欧美福利电影网| 丁香婷婷综合色啪| 亚洲影视在线观看| 久久久久一区二区三区四区| 色婷婷久久99综合精品jk白丝| 久久国产生活片100| 国产精品麻豆视频| 欧美一级在线免费| 不卡视频在线看| 久久www免费人成看片高清| 亚洲三级在线播放| 久久亚洲综合av| 欧美午夜电影在线播放| 国产精品白丝jk白祙喷水网站 | 国产精品 日产精品 欧美精品| 中文字幕欧美一| 日韩一级二级三级精品视频| 99re6这里只有精品视频在线观看| 日韩精品欧美精品| 亚洲美女区一区| 中文幕一区二区三区久久蜜桃| 欧美日韩国产美| 93久久精品日日躁夜夜躁欧美| 国产在线视频精品一区| 亚洲综合清纯丝袜自拍| 久久久久久久av麻豆果冻| 欧美一区二区私人影院日本| 色综合激情久久| 99久久精品国产导航| 国产精品性做久久久久久| 美女免费视频一区| 男人操女人的视频在线观看欧美| 亚洲激情第一区| 国产精品不卡在线观看| 国产三级精品在线| 久久一二三国产| 精品免费国产一区二区三区四区| 欧美日韩精品欧美日韩精品一| 91一区二区三区在线播放| 国产成人在线视频免费播放| 黄色资源网久久资源365| 日韩成人精品视频| 亚洲国产三级在线| 亚洲电影中文字幕在线观看| 一区二区三区免费网站| 亚洲免费观看高清完整 | 国产网红主播福利一区二区| 日韩视频在线永久播放| 欧美一区二区视频观看视频| 制服丝袜日韩国产| 欧美一区二区二区| 精品精品欲导航| 精品国产伦一区二区三区观看方式| 欧美另类变人与禽xxxxx| 欧美绝品在线观看成人午夜影视| 欧美日产在线观看| 欧美一区二区日韩| 欧美大度的电影原声| 337p日本欧洲亚洲大胆精品 | 成人黄色在线网站| 成人高清伦理免费影院在线观看| 成人免费视频caoporn| 91视频在线观看| 欧美日韩一区二区三区四区五区| 欧美日韩国产中文| 2020日本不卡一区二区视频| 国产欧美日韩卡一| 一区二区三区高清在线| 午夜电影一区二区三区| 国产在线一区观看| 97久久精品人人澡人人爽| 色呦呦日韩精品| 91精品国产综合久久精品麻豆 | 国产一区美女在线| 成人av资源站| 欧美蜜桃一区二区三区| 日韩一区二区在线观看视频| 欧美国产一区二区在线观看 | 国内精品写真在线观看| 成人激情黄色小说| 欧美精品久久一区| 日本一区二区免费在线| 亚洲影院理伦片| 国产精品自在在线| 一本色道a无线码一区v| 在线观看91精品国产麻豆| 久久久综合视频| 亚洲自拍偷拍网站| 国产在线视频不卡二| 精品视频一区二区三区免费| 国产校园另类小说区| 亚洲国产精品一区二区久久 | 中文字幕第一页久久| 亚洲午夜免费福利视频| 国产一区二区三区最好精华液| 91免费版在线| 久久伊人蜜桃av一区二区| 亚洲成人av电影| 成人h动漫精品一区二| 欧美电影免费观看高清完整版在线 | 久久九九国产精品| 亚洲电影一级黄| 不卡av在线免费观看| 精品久久五月天| 天涯成人国产亚洲精品一区av| 成人激情黄色小说| 久久久精品综合| 免费成人av在线播放| 欧美色视频在线| 亚洲视频 欧洲视频| 国产精品91一区二区| 日韩一区和二区| 亚洲福中文字幕伊人影院| proumb性欧美在线观看| 国产网站一区二区三区| 国内外成人在线| 欧美一区二区成人| 日韩和欧美的一区| 欧美影视一区二区三区| 亚洲视频在线观看三级| 成人高清视频免费观看| 日本一区二区三区在线观看| 韩国欧美国产1区| 欧美成人猛片aaaaaaa| 日韩av午夜在线观看| 欧美精品国产精品| 亚洲午夜精品在线| 色婷婷久久综合| 亚洲精品国产一区二区三区四区在线 | 欧美激情资源网| 国产suv精品一区二区6| 日本一区二区免费在线观看视频| 国产美女精品人人做人人爽 | 亚洲精品一二三区| 在线视频你懂得一区| 亚洲免费在线播放| 欧美亚洲日本国产|