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

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

?? nbtstatdlg.cpp

?? 局域網管理,用于檢測局域網的計算信息,C++寫的
?? CPP
字號:
// NBTSTATDlg.cpp : implementation file實現文件

#include "stdafx.h"
#include "NBTSTAT.h"
#include "NBTSTATDlg.h"

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

#define destPORT 137  //nbtstat name port
#define myPORT 4321

// CNBTSTATDlg dialog
CNBTSTATDlg* pDlg;//定義變量
BYTE bs[50]={0x0,0x00,0x0,0x10,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x43,0x4b,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x0,0x0,0x21,0x0,0x1};
unsigned char B1[4],B2[4];
HANDLE wait_handle;

CString strOldIP="";
bool bExit=false;
int i;

CNBTSTATDlg::CNBTSTATDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNBTSTATDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNBTSTATDlg)
		
	//}}AFX_DATA_INIT
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

	//---------------------------------------------
	pDlg=this;
	if(!m_UDPSocket.Create(myPORT,SOCK_DGRAM))
	{
		AfxMessageBox("Failed Create Socket");//創建接口失敗
	}
	//---------------------------------------------
}

void CNBTSTATDlg::DoDataExchange(CDataExchange* pDX)//DDX技術實現
{
	CDialog::DoDataExchange(pDX);//MFC會自動增加,用戶不必干預
	//{{AFX_DATA_MAP(CNBTSTATDlg)
	DDX_Control(pDX, IDC_SPIN1, m_spin);
	DDX_Control(pDX, IDC_LIST1, m_ListBox);
	DDX_Control(pDX, IDC_IPADDRESS2, m_IPEdit2);
	DDX_Control(pDX, IDC_LIST3, m_ListView);
	DDX_Control(pDX, IDC_IPADDRESS1, m_IPEdit1);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CNBTSTATDlg, CDialog)//消息映射函數
	//{{AFX_MSG_MAP(CNBTSTATDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BTN_SEND, OnBtnSend)
	ON_NOTIFY(IPN_FIELDCHANGED, IDC_IPADDRESS1, OnFieldchangedIpaddress1)
	ON_BN_CLICKED(IDC_BTN_EXIT, OnBtnExit)
	ON_BN_CLICKED(IDC_BTN_SAVE, OnBtnSave)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST3, OnDblclkListView)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

// CNBTSTATDlg message handlers 消息句柄

BOOL CNBTSTATDlg::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
	


	m_IPEdit1.SetAddress(172,22,56,1); //設置ip地址默認范圍
	m_IPEdit2.SetAddress(172,22,56,255);
	wait_handle=CreateEvent(NULL,true,false,"receive data");//創建處于非觸發狀態的事件。類型為手動
	GetDlgItem(IDC_BTN_EXIT)->EnableWindow(false);
	m_spin.SetRange(100,10000);
	m_spin.SetPos(100);

	// -----------------ListView 初始化---------------------
    DWORD dwStyle=GetWindowLong(m_ListView.GetSafeHwnd(),GWL_STYLE);//通過函數調用取得計算機的相關信息
	dwStyle&=~LVS_TYPEMASK;
	dwStyle|=LVS_REPORT;
	SetWindowLong(m_ListView.GetSafeHwnd(),GWL_STYLE,dwStyle);//創建列表框項風格

    m_ListView.InsertColumn(0,"MAC地址",LVCFMT_LEFT,120);
	m_ListView.InsertColumn(0,"用戶\\其它",LVCFMT_LEFT,100);
	m_ListView.InsertColumn(0,"主機",LVCFMT_LEFT,80);
	m_ListView.InsertColumn(0,"工作組",LVCFMT_LEFT,80);
	m_ListView.InsertColumn(0,"IP地址",LVCFMT_LEFT,100);
    
	m_ListView.SetExtendedStyle(LVS_EX_GRIDLINES);
    ::SendMessage(m_ListView.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,
      LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);//設置列表框風格

	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.如果你增加一個最小化按鈕,
//  你會需要下面的代碼去繪畫出這個圖標. 通過MFC應用程序的文檔或視圖模式,這個主窗
//  口會自動選擇.

void CNBTSTATDlg::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 CNBTSTATDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;//返回游標指針m_hIcon
}


//--------------------------nbtstat線程----------------------
UINT NbtstatThread(LPVOID param)
{
	//循環對要查詢的ip發數據
	do
	{
		if(bExit) //是否退出線程
		{
			AfxMessageBox("退出線程!");
			pDlg->GetDlgItem(IDC_BTN_SEND)->EnableWindow(true);
			pDlg->GetDlgItem(IDC_EDIT1)->EnableWindow(true);
	        pDlg->GetDlgItem(IDC_SPIN1)->EnableWindow(true);
			pDlg->GetDlgItem(IDC_IPADDRESS1)->EnableWindow(true);
			pDlg->GetDlgItem(IDC_IPADDRESS2)->EnableWindow(true);
			pDlg->GetDlgItem(IDC_BTN_EXIT)->EnableWindow(false);
			bExit=false;
			return 1;
		}

		pDlg->m_strIP.Format("%d.%d.%d.%d",B1[0],B1[1],B1[2],B1[3]);//得到ip
		pDlg->m_ListBox.InsertString(0,pDlg->m_strIP);//將該ip插入ListView的ip字段
		if(B1[3]!=0&&B1[2]!=0)
		pDlg->m_UDPSocket.SendTo((void*)bs,50,destPORT,pDlg->m_strIP,0);//向指定的ip發數據報
        int nWait=pDlg->m_spin.GetPos();//設置超時
		WaitForSingleObject(
		wait_handle,        // 等待事件的句柄
		nWait   // 超時
		);
		ResetEvent(wait_handle);//將事件重新置回非觸發狀態
		//=============================================
		//生成下一個要查詢的ip
		if(B1[2]<=B2[2])
		{
		   if(B1[3]<B2[3])B1[3]++;
		   else if(B1[2]<B2[2]&&B1[3]<255)B1[3]++;
		   else if(B1[2]<B2[2]&&B1[3]==255)
		   {
			   B1[3]=0;
			   B1[2]++;
		   }
		}
		else break;
		if(B1[3]>=B2[3]&&B1[2]>=B2[2])break;

	}while(B1[2]<=255&&B1[3]<=255);
	pDlg->m_ListBox.InsertString(0,"-----完成!-----");
	pDlg->GetDlgItem(IDC_BTN_SEND)->EnableWindow(true);//設置按鈕狀態
	pDlg->GetDlgItem(IDC_EDIT1)->EnableWindow(true);
	pDlg->GetDlgItem(IDC_SPIN1)->EnableWindow(true);
	pDlg->GetDlgItem(IDC_IPADDRESS1)->EnableWindow(true);
	pDlg->GetDlgItem(IDC_IPADDRESS2)->EnableWindow(true);
	pDlg->GetDlgItem(IDC_BTN_EXIT)->EnableWindow(false);
	return 0;
}
//-----------------------------------------------------------

void CNBTSTATDlg::OnBtnSend() 
{
	//從ip控件得到要查詢的ip范圍
	m_IPEdit1.GetAddress(B1[0],B1[1],B1[2],B1[3]);
	m_IPEdit2.GetAddress(B2[0],B2[1],B2[2],B2[3]);
	//判斷ip范圍是否合法
	if(B2[2]<B1[2]){AfxMessageBox("終止地址應大于起始地址!"); return ;}
	else if(B2[2]==B1[2]&&B2[3]<B1[3]){AfxMessageBox("終止地址應大于起始地址!"); return ;}
	if(B2[0]!=B1[0]||B2[1]!=B1[1]){AfxMessageBox("不支持A類或B類網!"); return ;}
	//設置相關按鈕狀態
	GetDlgItem(IDC_BTN_SEND)->EnableWindow(false);//設置按鈕狀態
	GetDlgItem(IDC_EDIT1)->EnableWindow(false);
	GetDlgItem(IDC_SPIN1)->EnableWindow(false);
	GetDlgItem(IDC_IPADDRESS1)->EnableWindow(false);
	GetDlgItem(IDC_IPADDRESS2)->EnableWindow(false);
	GetDlgItem(IDC_BTN_EXIT)->EnableWindow(true);
    //啟動線程
	AfxBeginThread(NbtstatThread,this->GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
}

void CNBTSTATDlg::OnReceive()
{	
	BYTE Buf[500];
	CString str,strIP,strHost,strHex,strMac,Host,Group,User;
	UINT dport;
	m_UDPSocket.ReceiveFrom(Buf,500,strIP,dport,0);//接收數據
    //如果接收到的ip為空或者與原來接收到的ip相同,則返回
	if(strIP==(char)NULL||strIP==strOldIP)return;
	strOldIP=strIP;
	int index=m_ListView.InsertItem(0,strIP);//將ip插入ListView
	strHost=""; //機器名字
	strHex="";//MAC地址
	User="?";//
	Host="\\";
	int tem=0,num=0;
	bool bAdd=true;
	//根據數據報規則取出相應的信息
	for(i=57;i<500;i++) //57-72
	{
		if(Buf[i]==0xcc)break; 
		if(Buf[i]==0x20)bAdd=false;
		if(bAdd)
		{
			str.Format("%c",Buf[i]);
			if(Buf[i]>=' ')strHost+=str;

			str.Format("%02x.",Buf[i]);
			strHex+=str;
		}

		if((++tem)%18==0)
		{
            bAdd=true; 
			strHost.TrimRight((char)NULL);//清除右邊的空格
			if(strHost=="")
			{
   				strMac.Delete(17,strMac.GetLength()-17);
				m_ListView.SetItem(index,4,LVIF_TEXT,strMac, 0, 0, 0,0);
				break;
			}


			if(num==0&&strHost!="")
			{
				m_ListView.SetItem(index,2,LVIF_TEXT,strHost, 0, 0, 0,0);
				Host=strHost;
				num++;
			}
			else
			{
				if(Host!=strHost&&num==1&&strHost!="")
				{
					m_ListView.SetItem(index,1,LVIF_TEXT,strHost, 0, 0, 0,0);
					Group=strHost;
				    num++;
				}
				else 
				{
					if(strHost!=Host&&strHost!=Group&&num==2&&strHost!="")
					{
						User=strHost;
						if(User!="__MSBROWSE__")
						{
							m_ListView.SetItem(index,3,LVIF_TEXT,User, 0, 0, 0,0);
							num++;
						}
					}
				}

			}
			
			strMac=strHex;
			strHost="";
			strHex="";
			
		}
		
	}
	//觸發事件,導致線程函數的繼續執行
	SetEvent(wait_handle);
	

}

void CNBTSTATDlg::OnFieldchangedIpaddress1(NMHDR* pNMHDR, LRESULT* pResult) //IP地址編輯函數
{
	
	unsigned char AddrB[4];
	m_IPEdit1.GetAddress(AddrB[0],AddrB[1],AddrB[2],AddrB[3]);
	m_IPEdit2.SetAddress(AddrB[0],AddrB[1],AddrB[2],255);	

	*pResult = 0;
}

void CNBTSTATDlg::OnBtnExit() //退出線程
{

	bExit=true;
}

CString MakeLen(CString str,int len)//獲得字串長度
{
	if(str.GetLength()<len)
	{
		for(int i=str.GetLength();i<len;i++)str+=' ';
	}
	else str+=' ';

	return str;
}

void CNBTSTATDlg::OnBtnSave() //保存獲得的計算機信息
{
	int Count=m_ListView.GetItemCount();
	CFile f;
	CFileException e;
	CString strFileName;

	CTime t=CTime::GetCurrentTime();
	CString strTime = t.Format( "%d-%H-%M-%S" );
	strTime="NBT_LOG-"+strTime;


	CFileDialog fileDlg(FALSE,"txt",strTime,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"txt",NULL); //TRUE 為打開對話框
	if(fileDlg.DoModal()==IDOK)
	{
		UpdateData(true);
		strFileName=fileDlg.GetFileName();
		UpdateData(false);
		
		if( f.Open(strFileName, CFile::modeCreate | CFile::modeWrite, &e ) )
		{
		
			CString str;
			str="IP地址           工作組        主機          用戶          MAC地址\r\n\r\n";
			f.Write( str, str.GetLength() );

			for(int i=0;i<Count;i++)
			{
				str=MakeLen(m_ListView.GetItemText(i,0),17)
					+MakeLen(m_ListView.GetItemText(i,1),14)
				    +MakeLen(m_ListView.GetItemText(i,2),14)
					+MakeLen(m_ListView.GetItemText(i,3),14)
					+MakeLen(m_ListView.GetItemText(i,4),17);
				str+="\r\n\r\n";
				f.Write( str, str.GetLength() );
			}
			f.Close();
		}
	}	
}


void CNBTSTATDlg::OnDblclkListView(NMHDR* pNMHDR, LRESULT* pResult) //雙擊列表框編輯數
{
	CString str;
	POSITION pos=m_ListView.GetFirstSelectedItemPosition();//獲得第一次選擇的列表位置
	if(pos==NULL)
	{
		AfxMessageBox("請選擇想要打開的主機。");
		return;
	}
    int SelIndex = m_ListView.GetNextSelectedItem(pos);
	str=m_ListView.GetItemText(SelIndex,2);
	str="\\\\"+str;
	char* host=&char(*str);
	::ShellExecute(this->GetSafeHwnd(),"open",host,NULL,"c:\\",SW_SHOW);//日志記錄存放位置
	*pResult = 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品亚洲视频| 亚洲色图清纯唯美| 久久品道一品道久久精品| 中文字幕av一区 二区| 五月综合激情婷婷六月色窝| 国产成人在线网站| 欧美tk丨vk视频| 一区二区三区视频在线观看| 国产激情视频一区二区三区欧美| 欧美性猛交xxxx黑人交| 国产精品亲子伦对白| 久久aⅴ国产欧美74aaa| 欧美日韩一二三区| 亚洲黄色小说网站| aaa亚洲精品| 中文字幕在线观看一区| 国产原创一区二区| 欧美r级在线观看| 日韩中文字幕亚洲一区二区va在线 | 色av一区二区| 亚洲欧洲国产日韩| 丁香婷婷综合五月| 国产欧美精品一区aⅴ影院| 国产美女娇喘av呻吟久久| 日韩免费性生活视频播放| 亚洲成人一区二区| 欧美精品粉嫩高潮一区二区| 午夜伊人狠狠久久| 91麻豆精品国产91久久久资源速度| 亚洲一区二区三区视频在线播放 | 精品在线播放免费| 日韩三级av在线播放| 蜜臀91精品一区二区三区 | 亚洲国产经典视频| 国产盗摄一区二区| 中文字幕中文在线不卡住| av在线播放成人| 亚洲免费资源在线播放| 欧美最猛黑人xxxxx猛交| 午夜精品123| 日韩视频国产视频| 九色porny丨国产精品| 久久精品欧美一区二区三区不卡| 国产不卡高清在线观看视频| 国产精品久久久久久户外露出| 欧美一区二区精品久久911| 欧美日韩国产电影| 欧美群妇大交群中文字幕| 欧美天堂亚洲电影院在线播放| 91成人免费网站| 欧美日韩国产a| 久久久精品tv| 一区二区三区在线播放| 青青青爽久久午夜综合久久午夜 | 日韩视频一区二区| 精品国产乱码久久久久久影片| 久久久久久久久97黄色工厂| 国产精品每日更新| 午夜视黄欧洲亚洲| 成人免费视频国产在线观看| 色香色香欲天天天影视综合网| 国产亚洲精久久久久久| 久久精品欧美日韩精品| 亚洲综合在线电影| 国产精品乱码一区二区三区软件| 中国av一区二区三区| 日本亚洲免费观看| 欧美人体做爰大胆视频| 韩国成人福利片在线播放| 亚洲欧洲在线观看av| 免费成人在线观看| 欧美高清在线精品一区| 欧美日韩视频第一区| 国精品**一区二区三区在线蜜桃| 成人欧美一区二区三区| 91精品国产综合久久精品性色| 国产传媒欧美日韩成人| 亚洲成av人片www| 中文字幕中文在线不卡住| 日韩一级片在线观看| 91在线精品一区二区| 久久精品国产成人一区二区三区 | 国产精品久久久久毛片软件| 欧美日韩五月天| 99精品国产一区二区三区不卡| 欧美a级理论片| 一区二区三区高清在线| 国产人妖乱国产精品人妖| 日韩免费高清av| 欧美日韩三级在线| 色综合久久天天| 国产成人亚洲综合色影视 | 午夜激情综合网| 亚洲日韩欧美一区二区在线| 久久久久久99久久久精品网站| 欧美理论电影在线| 91理论电影在线观看| 国产黄色精品网站| 国产麻豆9l精品三级站| 另类中文字幕网| 七七婷婷婷婷精品国产| 同产精品九九九| 夜夜精品视频一区二区| 亚洲六月丁香色婷婷综合久久| 亚洲男女一区二区三区| 美女网站色91| 亚洲h在线观看| 一卡二卡三卡日韩欧美| 亚洲日本免费电影| 亚洲色图色小说| 亚洲品质自拍视频网站| 亚洲欧美日韩电影| 成人免费在线视频观看| 亚洲欧美色一区| 亚洲狠狠丁香婷婷综合久久久| 亚洲国产成人在线| 中文字幕亚洲一区二区av在线| 久久婷婷国产综合国色天香| 久久众筹精品私拍模特| 久久综合九色综合97婷婷女人 | 一区二区成人在线视频| 亚洲品质自拍视频| 亚洲国产成人av网| 午夜久久久久久电影| 亚洲国产一区视频| 日本欧美在线看| 韩国v欧美v日本v亚洲v| 国内成人自拍视频| 成人精品视频网站| 色丁香久综合在线久综合在线观看| 91国偷自产一区二区三区成为亚洲经典| 日本久久一区二区| 欧美图区在线视频| 欧美mv日韩mv国产网站| 国产欧美精品日韩区二区麻豆天美| 最新国产成人在线观看| 亚洲电影一区二区三区| 免费美女久久99| 成人精品一区二区三区中文字幕| 色婷婷亚洲精品| 日韩午夜在线观看| 国产精品久线观看视频| 一区二区三区中文在线观看| 日韩在线一二三区| 国产精品一区二区久久精品爱涩| 91影院在线免费观看| 欧美老年两性高潮| 久久久国产精品不卡| 一区二区在线观看免费视频播放| 日韩**一区毛片| jizz一区二区| 制服.丝袜.亚洲.中文.综合| 国产精品麻豆一区二区 | 欧美日韩另类国产亚洲欧美一级| 日韩欧美国产一区在线观看| 国产精品私房写真福利视频| 婷婷中文字幕综合| av在线不卡观看免费观看| 91精品国产综合久久福利| 国产精品久线观看视频| 日本特黄久久久高潮| 91免费精品国自产拍在线不卡| 日韩欧美在线观看一区二区三区| 亚洲日本电影在线| 国产一区二区福利| 欧美人xxxx| 亚洲乱码中文字幕| 国产成人在线视频免费播放| 91精品久久久久久蜜臀| 亚洲精品ww久久久久久p站| 激情伊人五月天久久综合| 欧美日韩一区二区在线视频| 国产精品欧美久久久久一区二区| 日韩成人一区二区| 欧美日韩性生活| 亚洲日本乱码在线观看| 成人网男人的天堂| 精品毛片乱码1区2区3区| 亚洲福中文字幕伊人影院| www.爱久久.com| 国产日韩欧美精品电影三级在线| 亚洲国产精品一区二区久久恐怖片| 成人听书哪个软件好| 久久色成人在线| 蜜桃av一区二区在线观看| 欧美日韩国产成人在线91| 一区二区三区毛片| 99国产精品久久久久久久久久| 国产三级一区二区| 国产伦精品一区二区三区在线观看| 欧美一区在线视频| 首页国产丝袜综合| 欧美日韩精品一区视频| 亚洲综合色区另类av| 色综合久久综合网97色综合| 国产精品女上位| 成人激情小说网站| 国产精品国产自产拍高清av王其 | 精品无码三级在线观看视频| 日韩欧美一级特黄在线播放|