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

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

?? neighborinfodlg.cpp

?? 查找局域網內計算機的計算名、IP及MAC地址。
?? CPP
字號:
// NeighborInfoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "NeighborInfo.h"
#include "NeighborInfoDlg.h"

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

#define NBTSTATPORT 137		//nbtstat name port
#define OWNERPORT	4321

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
//--------------------------------var-------------------------------
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};
HANDLE wait_handle;
UINT NbtstatThread(LPVOID param);



class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNeighborInfoDlg dialog

CNeighborInfoDlg::CNeighborInfoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNeighborInfoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNeighborInfoDlg)
	m_listcount = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CNeighborInfoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNeighborInfoDlg)
	DDX_Control(pDX, IDC_IPADDRESSSTART, m_ipstart);
	DDX_Control(pDX, IDC_IPADDRESSEND, m_ipend);
	DDX_Control(pDX, IDC_LISTINFOR, m_ListView);
	DDX_Text(pDX, IDC_STATIC_COUNT, m_listcount);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CNeighborInfoDlg, CDialog)
	//{{AFX_MSG_MAP(CNeighborInfoDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BEGINSCAN, OnBeginScan)
	ON_BN_CLICKED(IDC_STOPSCAN, OnStopScan)
	ON_BN_CLICKED(IDC_MYHELP, OnMyHelp)
	ON_BN_CLICKED(IDC_EMPTY, OnEmpty)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNeighborInfoDlg message handlers

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

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// 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
	wait_handle=CreateEvent(NULL,true,false,"receive data");
	GetDlgItem(IDC_STOPSCAN)->EnableWindow(false);

	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);

	//初始化端口
	if(AfxSocketInit(NULL)==FALSE)
	{
		AfxMessageBox("Error Init Socket");
	}
	m_socket.Init(this);
	if(m_socket.Create(OWNERPORT,SOCK_DGRAM)==FALSE)
	{
		AfxMessageBox("Socket Create Error");
	}
	m_bStop=FALSE;
	
	char name[32];
	int nGethostname;
	/*{{SHOWDLG
	int gethostname (
					  char FAR * name,  
					  int namelen);//取得本機名
	SHOWDLG}}*/
	nGethostname = gethostname(name, sizeof(name));
	if(nGethostname == SOCKET_ERROR)
	{
		return FALSE;
	}
	struct hostent FAR * hostent; 

	hostent = gethostbyname(name);
	if (hostent == NULL)
	{
		return FALSE;
	}
	char* pchr = inet_ntoa(*((struct in_addr *)hostent->h_addr_list[0]));;
	strrev(pchr);
	char* p = strstr(pchr,".");
	strrev(p);
	m_ipstart.SetWindowText((CString)p + "0");
	m_ipend.SetWindowText((CString)p + "255");

	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CNeighborInfoDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// 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 CNeighborInfoDlg::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 CNeighborInfoDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CNeighborInfoDlg::OnBeginScan() 
{
	// TODO: Add your control notification handler code here
	CIPAddressCtrl	*c=(CIPAddressCtrl *)(GetDlgItem(IDC_IPADDRESSSTART));
	c->GetAddress(m_bStartAddress[0],m_bStartAddress[1],m_bStartAddress[2],m_bStartAddress[3]);
	c=(CIPAddressCtrl *)(GetDlgItem(IDC_IPADDRESSEND));
	c->GetAddress(m_bEndAddress[0],m_bEndAddress[1],m_bEndAddress[2],m_bEndAddress[3]);

	if(m_bEndAddress[0]!=m_bStartAddress[0]||m_bEndAddress[0]!=m_bStartAddress[0])
	{
		AfxMessageBox("不支持A類或B類地址");
		m_bEndAddress[0]=m_bStartAddress[0];
		m_bEndAddress[1]=m_bStartAddress[1];
		if(m_bEndAddress[2]<m_bStartAddress[2])
		{
			m_bEndAddress[2]=m_bStartAddress[2];
			if(m_bEndAddress[3]<m_bStartAddress[3])
			{
				m_bEndAddress[3]=255;
			}
		}
		else	if(m_bEndAddress[2]=m_bStartAddress[2])
		{
			if(m_bEndAddress[3]<m_bStartAddress[3])
			{
				m_bEndAddress[3]=255;
			}
		}
		c->SetAddress(m_bEndAddress[0],m_bEndAddress[1],m_bEndAddress[2],m_bEndAddress[3]);
	}
	GetDlgItem(IDC_IPADDRESSSTART)->EnableWindow(FALSE);
	GetDlgItem(IDC_IPADDRESSEND)->EnableWindow(FALSE);
	GetDlgItem(IDC_BEGINSCAN)->EnableWindow(FALSE);
	GetDlgItem(IDC_STOPSCAN)->EnableWindow(TRUE);

	//開始掃描
	AfxBeginThread(NbtstatThread,(LPVOID)this,THREAD_PRIORITY_NORMAL);
}

void CNeighborInfoDlg::OnStopScan() 
{
	// TODO: Add your control notification handler code here
	m_bStop=TRUE;
}

void CNeighborInfoDlg::ReceiveMessage()
{
	BYTE Buf[500];
	//m_UDPSocket.Receive(Buf,500,0);
	static CString strOldIP;
	CString str,strIP,strHost,strHex,strMac,Host,Group,User;
	UINT dport;
	m_socket.ReceiveFrom(Buf,500,strIP,dport,0);

	if(strIP==(char)NULL||strIP==strOldIP)return;
	strOldIP=strIP;

	//ip

//	int index=m_ListView.InsertItem(0,strIP);
	int index=m_ListView.GetItemCount();
	CString sCount;
	sCount.Format("列表總數:%d",index+1);
	m_listcount = sCount;
	UpdateData(FALSE);
	m_ListView.InsertItem(index,strIP);

	strHost="";
	strHex="";
	User="?";
	Host="\\";
	
	int tem=0,num=0;
	bool bAdd=true;

	for(int i=0;i<500;i++)
	{
		if(i%50==0)
			TRACE("\n");
		TRACE("%c",Buf[i]);
	}

	//nbtstat前面的57個字節是
	for(i=57;i<500;i++) //57-72
	{
		//end
		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; 
			//m_ListBox.AddString(strHost);//
			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 CNeighborInfoDlg::OnMyHelp() 
{
	// TODO: Add your control notification handler code here
	CDialog dlg(IDD_ABOUTBOX);
	dlg.DoModal();
	
}

//--------------------------nbtstat線程----------------------
UINT NbtstatThread(LPVOID param)
{
	CNeighborInfoDlg * dlg=(CNeighborInfoDlg *)param;
	BYTE begin[4],end[4];
	memcpy(begin,dlg->m_bStartAddress,sizeof(dlg->m_bStartAddress));
	memcpy(end,dlg->m_bEndAddress,sizeof(dlg->m_bEndAddress));
	CString ip;
	do
	{
		if(dlg->m_bStop)
		{
			AfxMessageBox("終止掃描!");
			dlg->GetDlgItem(IDC_STOPSCAN)->EnableWindow(false);
	        dlg->GetDlgItem(IDC_BEGINSCAN)->EnableWindow(true);
			dlg->GetDlgItem(IDC_IPADDRESSSTART)->EnableWindow(true);
			dlg->GetDlgItem(IDC_IPADDRESSEND)->EnableWindow(true);
			dlg->m_bStop=FALSE;
			return 1;
		}

		ip.Format("%d.%d.%d.%d",begin[0],begin[1],begin[2],begin[3]);
		if(begin[3]!=0&&begin[2]!=0)
			dlg->m_socket.SendTo((void*)bs,50,NBTSTATPORT,ip,0);
		
 		WaitForSingleObject(wait_handle,100);
		ResetEvent(wait_handle);
		
		//=============================================
		if(begin[2]<=end[2])
		{
		   if(begin[3]<end[3])
			   begin[3]++;
		   else if(begin[2]<end[2]&&begin[3]<255)
			   begin[3]++;
		   else if(begin[2]<end[2]&&begin[3]==255)
		   {
			   begin[3]=0;
			   begin[2]++;
		   }
		}
		else 
			break;
		if(begin[3]>=end[3]&&begin[2]>=end[2])
			break;
	}while(begin[2]<=255&&begin[3]<=255);

	dlg->GetDlgItem(IDC_STOPSCAN)->EnableWindow(false);
	dlg->GetDlgItem(IDC_BEGINSCAN)->EnableWindow(true);
	dlg->GetDlgItem(IDC_IPADDRESSSTART)->EnableWindow(true);
	dlg->GetDlgItem(IDC_IPADDRESSEND)->EnableWindow(true);
	AfxMessageBox("掃描完畢!");
	return 0;
}
//-----------------------------------------------------------

void CNeighborInfoDlg::OnEmpty() 
{
	// TODO: Add your control notification handler code here
	m_ListView.DeleteAllItems();
	m_listcount = "列表總數:0";
	UpdateData(FALSE);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合中文综合网| 国产精品每日更新| 亚洲综合清纯丝袜自拍| 国产在线一区二区| 色婷婷av一区二区三区大白胸| 欧美成人一区二区三区在线观看| 国产精品久久久久久久久免费相片 | 麻豆专区一区二区三区四区五区| 91免费版pro下载短视频| 久久亚洲一区二区三区明星换脸| 日韩精品一区第一页| 色偷偷88欧美精品久久久| 久久人人97超碰com| 日本不卡视频一二三区| 在线观看国产91| 国产精品久久久久久久蜜臀| 国产精品一区专区| 日韩美女天天操| 性久久久久久久久| 欧美性大战久久久久久久蜜臀 | 国产电影一区二区三区| 91精品国产一区二区三区| 亚洲国产日韩av| 在线亚洲免费视频| 亚洲免费观看高清在线观看| 国产mv日韩mv欧美| 久久新电视剧免费观看| 精品亚洲成a人| 精品剧情在线观看| 国产真实乱子伦精品视频| 精品欧美一区二区久久| 蜜臀99久久精品久久久久久软件| 欧美男人的天堂一二区| 偷拍一区二区三区| 宅男噜噜噜66一区二区66| 亚洲va韩国va欧美va| 欧美日韩精品高清| 亚洲成人自拍偷拍| 日韩一区二区免费视频| 麻豆国产欧美一区二区三区| 精品国产制服丝袜高跟| 激情亚洲综合在线| 国产欧美视频一区二区三区| 国产福利一区二区| 中文成人综合网| 91免费国产在线观看| 亚洲最新视频在线播放| 欧美精品一卡两卡| 久久国内精品自在自线400部| 精品女同一区二区| 国产成人aaaa| 一区二区视频免费在线观看| 欧美日韩色一区| 久久99精品久久久久久| 亚洲国产精品ⅴa在线观看| 99免费精品视频| 亚洲成人免费影院| 精品成人一区二区三区| 成人av资源下载| 亚欧色一区w666天堂| 久久色在线视频| 97国产精品videossex| 肉丝袜脚交视频一区二区| 国产欧美精品一区二区三区四区 | 亚洲精品美国一| 欧美精品电影在线播放| 国产在线视视频有精品| 亚洲少妇屁股交4| 欧美一级一区二区| 99视频在线观看一区三区| 午夜免费久久看| 久久蜜桃av一区精品变态类天堂| av一区二区三区四区| 免费在线观看日韩欧美| 中文字幕av一区二区三区免费看| 欧美猛男男办公室激情| 成人中文字幕电影| 日日骚欧美日韩| 亚洲欧洲在线观看av| 日韩小视频在线观看专区| 91美女在线看| 国产一区二区三区免费| 性感美女极品91精品| 国产精品久久久久影视| 欧美sm极限捆绑bd| 欧美伊人精品成人久久综合97| 国产一区二区三区免费在线观看 | 国产精品私人影院| 91精品久久久久久久99蜜桃| 91麻豆国产精品久久| 国产精品综合久久| 日韩国产欧美视频| 亚洲欧美激情小说另类| 国产女主播在线一区二区| 欧美一级片在线观看| 91成人国产精品| 成人手机电影网| 国产一区二区三区久久悠悠色av | 亚洲免费资源在线播放| 久久精品亚洲精品国产欧美| 欧美一级黄色片| 欧美三级中文字幕在线观看| 色哟哟在线观看一区二区三区| 福利一区二区在线| 国产九色精品成人porny| 美女视频一区在线观看| 日本在线观看不卡视频| 五月婷婷久久综合| 午夜免费欧美电影| 洋洋av久久久久久久一区| 尤物视频一区二区| 亚洲欧美aⅴ...| 亚洲视频免费观看| 亚洲人成小说网站色在线| 中文字幕不卡一区| 国产精品久久久99| 自拍偷在线精品自拍偷无码专区| 欧美激情在线看| 国产精品福利在线播放| 亚洲素人一区二区| 亚洲欧美日韩电影| 亚洲一区二区精品久久av| 亚洲综合免费观看高清完整版| 亚洲九九爱视频| 怡红院av一区二区三区| 亚洲福利一区二区| 天天色 色综合| 另类人妖一区二区av| 国产一区二区在线观看视频| 国产精品主播直播| 成年人午夜久久久| 欧日韩精品视频| 欧美日本乱大交xxxxx| 日韩欧美久久久| 国产拍揄自揄精品视频麻豆| 中文字幕五月欧美| 亚洲国产精品一区二区久久| 日日嗨av一区二区三区四区| 久久91精品久久久久久秒播| 福利电影一区二区| 色丁香久综合在线久综合在线观看| 欧美自拍丝袜亚洲| 日韩欧美成人激情| 国产精品每日更新| 日韩高清在线一区| 国产大陆a不卡| 欧美专区亚洲专区| 欧美mv和日韩mv国产网站| 国产精品美女久久久久aⅴ| 亚洲国产另类av| 国内精品国产三级国产a久久| 成人av在线观| 91精品免费在线| 国产精品毛片久久久久久| 午夜影院在线观看欧美| 国产一区二区三区免费看| 欧美午夜一区二区三区免费大片| 欧美电视剧在线观看完整版| 亚洲图片欧美激情| 麻豆国产一区二区| 欧美综合一区二区| 国产亚洲综合av| 日韩极品在线观看| 91小视频免费观看| 2021国产精品久久精品| 亚洲线精品一区二区三区八戒| 国产一区二区三区不卡在线观看| 色偷偷久久一区二区三区| 久久先锋影音av| 亚洲成a天堂v人片| 92精品国产成人观看免费| 精品1区2区在线观看| 亚洲伊人色欲综合网| 成人午夜激情影院| 日韩美女一区二区三区| 亚洲国产一区二区视频| 99在线精品一区二区三区| 精品福利在线导航| 奇米一区二区三区| 欧美在线色视频| 综合激情网...| 成人国产精品视频| 国产亚洲成年网址在线观看| 日韩精品91亚洲二区在线观看| 日本高清无吗v一区| 国产精品免费视频网站| 国产999精品久久久久久绿帽| 日韩欧美一区二区免费| 日韩精品视频网站| 在线视频你懂得一区二区三区| 国产精品天天摸av网| 国产不卡视频在线播放| 久久久久久久久久电影| 蜜桃视频一区二区三区在线观看| 精品视频一区二区不卡| 亚洲一本大道在线| 欧美日韩免费视频| 亚洲成人av一区二区三区| 欧美性猛交xxxx黑人交| 亚洲福利视频导航|