LAN管理器的设计与实现-主机信息探测与查询子系统的设计与实现--毕业设计说明书.doc
《LAN管理器的设计与实现-主机信息探测与查询子系统的设计与实现--毕业设计说明书.doc》由会员分享,可在线阅读,更多相关《LAN管理器的设计与实现-主机信息探测与查询子系统的设计与实现--毕业设计说明书.doc(45页珍藏版)》请在咨信网上搜索。
单位代码 10 学 号 分 类 号 TP393 密 级 毕业设计说明书 LAN管理器的设计与实现 —主机信息探测与查询子系统的设计与实现 院(系)名称 专业名称 学生姓名 指导教师 QQ 997237619 2012年5月14日 黄河科技学院毕业设计说明书 第 I 页 LAN管理器的设计与实现 ——主机信息探测与查询子系统的设计与实现 摘 要 目前,局域网已广泛应用于机关、学校、企事业单位等。围绕LAN管理器课程局域网建设任务,基于TCP/IP协议栈,在Windows下用VC编程语言,设计、实现了LAN管理器的主机信息探测与查询子系统。概述了课题的选题背景、课题来源、毕业设计任务及毕业设计说明书的组织结构,说明了主机信息探测与查询子系统的功能需求、性能需求和用户需求,重点介绍了LAN管理器的总体设计及主机信息探测与查询子系统的具体实现环境和主要实现代码。测试结果表明该子系统能够正常工作,实现了预期目的,为LAN管理器的设计和实现打下了基础。 关键词:LAN管理器,主机信息,探测与查询,VC 黄河科技学院毕业设计说明书 第 II 页 Design and Implementation of LAN Manager —— Host Detection and Query Subsystem Design and Achieve Author:Xing Ming Tutor:Sun Feixian Abstract Local area networks (LAN) have been widely applied in offices, schools, enterprises, institutions, and etc. Rounding the graduation designing tasks, a host information detection and query sub-system is designed and implemented. The presented sub-system is based on Windows operating system, and it is implemented by VC programming language. With the research background and sources of the subject introduced, the graduate design tasks and organizational structure are given. Following that, the functional requirements, performance requirements and user requirements of the sub-system are illustrated. And then, the overall and detailed design methods of the host information detection and query sub-system are also given. Finally, the implementation environment and the main codes of the sub-system are described. Testing results show that the sub-system can work properly. Thus, it lays the foundation for the design and implementation of LAN management system. Keywords: LAN Management, Host Information, Detection and query, VC 黄河科技学院毕业设计说明书 第 41 页 目 录 1 绪论 1 1.1 选题背景 1 1.2 课题来源 1 1.3 毕设任务及本人贡献 1 1.4 毕业设计说明书的组织结构 2 2 需求分析 3 2.1 功能需求 3 2.2 性能需求 3 2.3 用户需求 3 3 系统设计 4 3.1 设计思想 4 3.2 总体设计 4 3.3 详细设计 5 4 系统实现 6 4.1 系统实现环境说明 6 4.2 主要模块的实现 6 5 系统测试 17 4.1 测试目的 17 4.2 测试方法 17 4.3 测试用例与测试结果 17 4.4 测试结论 22 结论 23 致谢 24 参考文献 25 附录 26 源代码 26 1 绪论 1.1 选题背景 自从计算机问世以来,安全问题就一直存在。特别是随着Internet的迅速扩张和电子商务的兴起,人们发现保护资源和数据的安全,让他免受来自恶意入侵者的威胁是件相当困难的事。提到网络安全,很多人首先想到的是防火墙,防火墙作为一种静态的访问控制类安全产品通常使用包过滤的技术来实现网络的隔离。适当配置的防火墙虽然可以将非预期的访问请求屏蔽在外,但不能检查出经过他的合法流量中是否包含着恶意的入侵代码。 随着入侵手段的日益复杂和通用系统不时出现的安全缺陷,预先评估分析网络系统中存在的安全问题,已经成为网络管理员们的重要需求。基于网络的安全扫描主要扫描设定网络内的服务器、路由器、网桥、交换机、访问服务器、防火墙等设备的安全漏洞,并可设定模拟攻击,以测试系统的防御能力。这种技术模拟入侵者可能的攻击行为,从系统外部进行扫描,以探测是否存在可以被入侵者利用的系统安全薄弱之处。针对网络入侵手段日益复杂、操作系统漏洞不断涌现等问题,预先评估网络信息系统存在的安全问题已成为网络管理员的重要需求。如何保障自身网络的安全,其中一个主要的方法就是自查自纠,而在这个过程中,对自己的网络进行扫描成为一种较为快捷、直观、简单的方法。扫描技术基于TCP/IP协议,对各种网络服务,无论是主机或者防火墙、路由器都适用。同时, 扫描可以确认各种配置的正确性,避免遭受不必要的攻击。为了提高扫描的效率和精确度,主机的信息探测就是必不可少的。 1.2 课题来源 本课题来自河南省教育厅自然科学研究计划项目(编号2010A520048)。 1.3 毕设任务及本人贡献 围绕LAN管理器研究,采用ARP、Ping技术,设计主机信息的探测与查询方法,并用VC编程实现,同时连接数据库。要求:探测速度尽可能快;既能探测单个目标主机的信息,也能探测某一IP地址区间内主机的信息;具备一定穿透防火墙的能力。 具体毕业设计任务如下: (1)根据任务书要求,收集材料,对比分析,完成译文和文献综述; (2)完成开题报告; (3)学习局域网程序设计知识,设计并实现主机信息探测与查询子系统; (4)撰写毕业设计说明书。 本人的主要贡献主要有以下几点: (1)完成译文和文献综述; (2)完成了开题报告; (3)实现了LAN管理器的总体设计和数据库设计; (4)测试了主机信息探测与查询子系统; (5)撰写了毕业设计说明书。 1.4 毕业设计说明书的组织结构 本学位论文包括中英文摘要、目录、绪论、正文、总结、参考文献、致谢、源代码,共八个部分。其中,论文的绪论、正文和总结三部分的组织安排如下: (1) 绪论:首先介绍了课题的研究背景和课题来源,然后介绍了本文的研究内容与主要贡献,最后列出了论文的组织结构。 (2) 需求分析:主要介绍了该系统的用户需求、功能需求和性能需求。 (3) 系统设计:详细介绍了LAN管理器主机信息探测与查询子系统的基本思想、整体设计和详细设计。 (4) 系统实现:给出系统实现的标准测试环境和实现系统的主要代码。 (5) 系统测试:在标准测试环境下的测试结果进行分析。 (6) 总结:对论文的主要工作进行了总结。 2 需求分析 2.1 功能需求 (1) 探测与查询功能 可利用多种技术对主机信息进行探测与查询。 (2) 防火墙穿越功能 防火墙穿越,即在对方已安装防火墙并且正常运行的情况下探测主机信息,这是主机信息探测与查询系统的核心功能,也是主机信息探测与查询系统必不可少的功能。 2.2 性能需求 尽可能快的探测到主机信息,既能探测单个目标主机的信息,也能探测某一IP地址区间内主机的信息,具备一定穿透防火墙的能力,同时准确率不低于90%。 2.3 用户需求 用户需求主要有以下几个方面: (1) 通过简单的操作就能够探测到主机信息,并且有必要的返回信息并记录结果; (2) 在对方打开防火墙禁止Ping的时候,我们Ping不通的时候应该通过一种有效的方式来探测到对方主机信息; (3) 可以同时探测多个主机的信息; (4) 在某一主机的信息发生变更时可以更新出所变更后的信息; (5) 具有数据存储功能。 3 系统设计 3.1 设计思想 通过arp协议,调用arp功能函数,实现主机信息的探测,通过函数的返回值来判断主机的是否存活,并且获取存活主机的mac。然后通过IP层协议获取主机的详细信息(gethostbyaddr),例如:主机名字,地址类型,主机网络地址等;当获取信息之后存入数据库(sql server 2005),于是要用到数据库的存取知识。由于探测主机的范围比较大,所以需要用到多线程的思想。 3.2 总体设计 基于ARP协议的主机信息探测与查询系统主要包括域名解析和IP地址的转换、ARP请求发送与处理两大模块,各模块的功能简述如下: 域名解析及IP地址转换:调用inet_addr将输入的点分十进制数表示的IP地址转换为网络字节顺序的IP地址;获取主机名:调用gethostbyaddr获取存活主机的主机名; ARP请求发送与处理:调用sendARP函数向目标地址发送ARP请求;获取MAC地址,判断ARP返回的MAC地址转换成易读的形式,并将主机信息写入数据库。 依据上述理论,具体的功能模块如图3.1所示。 图3.1 功能模块 3.3 详细设计 依据毕业设计任务书要求,自己负责设计的LAN管理器的主机信息与探测流程图如图3.2所示。 图3.2 程序探测流程图 4 系统实现 4.1 系统实现环境说明 操作系统:Windows xp 开发工具:Visual studio 6.0 数据库:sql server 2005 4.2 主要模块的实现 (1) 封装CDataClass类 首先封装了一个基于CObject类的CDataClass类来操作数据库,有连接数据库,打开数据库记录,添加信息,删除信息,更新信息等功能,代码如下: class CDataClass:CObject { public: CDataClass(); bool Delete(CString sql); bool Insert(CString sql); bool Update(CString sql); _RecordsetPtr & Select(CString sql); bool Close(); bool Open(); _RecordsetPtr pRst; ~CDataClass(); private: _ConnectionPtr pConn; // 建立Connection _CommandPtr pCmd; // 建立Command }; CDataClass::CDataClass() { WaitForSingleObject(hMutex,INFINITE); CoInitialize(NULL); pRst.CreateInstance(__uuidof(Recordset)); pConn.CreateInstance(__uuidof(Connection)); pCmd.CreateInstance(__uuidof(Command)); } bool CDataClass::Open() { HRESULT res=0; try { pConn->ConnectionString ="Provider=SQLOLEDB.1; Integrated Security=SSPI; Persist Security Info=False; Initial Catalog=LanMana; Data Source=.";//LT-PC\\SQLEXPRESS res=pConn->Open("","","",adModeUnknown); pCmd->ActiveConnection=pConn; } catch (_com_error e) { AfxMessageBox(e.Description()); return false; } return true; } _RecordsetPtr & CDataClass::Select(CString sql) { try { pCmd->CommandText=(LPCTSTR)sql; pRst=pCmd->Execute(NULL,NULL,adCmdText); } catch (_com_error e) { AfxMessageBox(e.Description()); } return pRst; } bool CDataClass::Insert(CString sql) { try { pCmd->CommandText=(LPCTSTR)sql; pCmd->Execute(NULL,NULL,adCmdText); } catch (_com_error e) { AfxMessageBox(e.Description()); return false; } return true; } bool CDataClass::Delete(CString sql) { try { pCmd->CommandText=(LPCTSTR)sql; pCmd->Execute(NULL,NULL,adCmdText); } catch (_com_error e) { AfxMessageBox(e.Description()); return false; } return true; } bool CDataClass::Update(CString sql) { try { pCmd->CommandText=(LPCTSTR)sql; pCmd->Execute(NULL,NULL,adCmdText); } catch (_com_error e) { AfxMessageBox(e.Description()); return false; } return true; } bool CDataClass::Close() { try { pConn->Close(); } catch (_com_error e) { AfxMessageBox(e.Description()); ReleaseMutex(hMutex); return false; } return true; } CDataClass::~CDataClass() { CoUninitialize(); ReleaseMutex(hMutex); } (2) 所用的主要成员变量如图4.1所示。 图4.1 主要成员变量 (3) 初始化函数代码 通过初始化函数探测该主机所在IP地址的地址段信息,并初始化列表函数的头标题,代码如下: WSADATA wsadata; CString str; if(WSAStartup(MAKEWORD(2,2),&wsadata)) { str.Format("不能初始化sock!"); MessageBox((LPCTSTR)str); exit(0); } char hostname[256]; gethostname(hostname,sizeof(hostname)); hostent *host=gethostbyname(hostname); char* IP=inet_ntoa(*(in_addr*)host->h_addr_list[0]); m_IPAddress.Format("%s",IP); int a,b,c; sscanf(IP,"%d.%d.%d.%d",&a,&b,&c,&m_Begin); m_IPAddressPre.Format("%d.%d.%d.",a,b,c); m_Pre.Format("%s",(LPCTSTR)m_IPAddressPre); m_Begin=1; UpdateData(false); //隐藏侧边栏 OnButtonSorh(); //初始化互斥量 hMutex=CreateMutex(NULL,false,NULL); LVCOLUMN lvColumn; char HeaderTxt[5][10]= {"序号","IP地址","电脑名","MAC地址","操作系统"}; int nWidth[5]={50,100,100,120,100}; for(int i=0;i<5;i++) { lvColumn.mask = LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH|LVCF_FMT; lvColumn.fmt = LVCFMT_CENTER; lvColumn.iSubItem = i; lvColumn.pszText = HeaderTxt[i]; lvColumn.cx = nWidth[i]; m_Info.InsertColumn(i,&lvColumn); } (4) 探测该局域网内存活的主机的代码 检测函数: void CLanManaDlg::OnButtonIndex() { // TODO: Add your control notification handler code here //向数据库增加数据 if(m_IsOn==true) { UpdateData(true); CDataClass ado; CString sql; if(!ado.Open()) return; for (int i=m_Begin;i<=m_End;i++) { if(i==m_Begin) { sql.Format("delete from IPInfo"); if(!ado.Delete(sql)) return; } sql.Format("insert into IPInfo values('%s%d','','',0,'')",(LPCTSTR)m_IPAddressPre,i); if(!ado.Insert(sql)) return; } if(!ado.Close()) return; m_Index.SetWindowText("中止"); SetTimer(1,2000,NULL); int * span=new int[2]; span[0]=m_Begin; span[1]=m_End; m_HThread=AfxBeginThread(ExploreHost,span); if(m_HThread==NULL) exit(1); m_IsOn=false; } else { m_Index.SetWindowText("检测"); TerminateThread(m_HThread,-1); KillTimer(1); m_IsOn=true; } } (5) 线程函数以及探测函数 UINT CLanManaDlg::ExploreHost(LPVOID param) { int *span=(int *)param; int begin=span[0],end=span[1]; delete span; while(true) { for (int i=begin;i<=end;i+=SPAN) { int *p=new int[2]; p[0]=i; if(i+SPAN<end) { p[1]=i+SPAN; } else p[1]=end; HANDLE HThread=AfxBeginThread(GetHostInfo,p); if(HThread==NULL) exit(1); } Sleep(50000); } return 0; } UINT CLanManaDlg::GetHostInfo(LPVOID param) { int *p=(int *)param; int begin=p[0],end=p[1]; delete p; BYTE Mac[6]; CString IP; for (int i=begin;i<begin+SPAN;i++) { if(i>end) break; IP.Format("%s%d",(LPCTSTR)m_IPAddressPre,i); char pIP[16]; strcpy(pIP,IP.GetBuffer(16)); HRESULT hr = Arp(pIP,Mac); if(hr == 0) { CString str; CString strMac(""); CString strHostname(""); int i; for(i=0;i<=5;i++) { if(i==5) { str.Format("%02X",Mac[i]); } else str.Format("%02X:",Mac[i]); strMac += str; } IPAddr ipAddr; char buf[256]; ipAddr = inet_addr ((LPCTSTR)IP); ZeroMemory(buf,256); hostent * remoteHostent = gethostbyaddr( (char*)&ipAddr,sizeof( in_addr ), AF_INET ); if ( remoteHostent ) strHostname = remoteHostent->h_name; //操作数据库 CString sql; CDataClass dao; int res=dao.Open(); if(res==-1) return -1; sql.Format("update IPInfo set hostname='%s',MAC='%s',isonline=1 where IP='%s'",(LPCTSTR)strHostname,(LPCTSTR)strMac,(LPCTSTR)IP); if(!dao.Update(sql)) return -1; if(!dao.Close()) return -1; } else{ CString sql; CDataClass dao; if(!dao.Open()) return -1; sql.Format("update IPInfo set isonline=0 where IP='%s'",(LPCTSTR)IP); if(!dao.Update(sql)) return -1; if(!dao.Close()) return -1; } } return 0; } (6) 精确查询、模糊查询的代码 void CLanManaDlg::OnButtonQuary() { // TODO: Add your control notification handler code here UpdateData(true); if (m_IsAuto==true) { KillTimer(1); m_Refresh.SetWindowText("继续"); m_IsAuto=false; } int ID1,ID2; CString str1,str2; ID1=GetCheckedRadioButton(IDC_RADIO_EXACT,IDC_RADIO_DIM); ID2=GetCheckedRadioButton(IDC_RADIO_HOSTNAME,IDC_RADIO_MAC); ((CButton*)GetDlgItem(ID1))->GetWindowText(str1); ((CButton*)GetDlgItem(ID2))->GetWindowText(str2); if(!str1.Compare("精确")) { if (!str2.Compare("主机名")) { CString sql; sql.Format("select * from IPInfo where hostname='%s' and isonline=1",(LPCTSTR)m_Text); GetData(sql); } else if (!str2.Compare("IP地址")) { CString sql; sql.Format("select * from IPInfo where IP='%s' and isonline=1",(LPCTSTR)m_Text); GetData(sql); } else { CString sql; sql.Format("select * from IPInfo where MAC='%s' and isonline=1",(LPCTSTR)m_Text); GetData(sql); } } else { if (!str2.Compare("主机名")) { CString sql; sql.Format("select * from IPInfo where hostname like '%%%s%%' and isonline=1",(LPCTSTR)m_Text); GetData(sql); } else if (!str2.Compare("IP地址")) { CString sql; sql.Format("select * from IPInfo where IP like '%%%s%%' and isonline=1",(LPCTSTR)m_Text); GetData(sql); } else { CString sql; sql.Format("select * from IPInfo where MAC like '%%%s%%' and isonline=1",(LPCTSTR)m_Text); GetData(sql); } } } (7) 数据显示函数 void CLanManaDlg::GetData(CString sql) { //操作数据库 _RecordsetPtr pRst(__uuidof(Recordset)); CDataClass dao; dao.Open(); pRst=dao.Select(sql); if(pRst==NULL) return; m_Info.DeleteAllItems(); int ID=0; try{ while (!pRst->adoEOF) { CString num; num.Format("%d",ID+1); CString IP=(LPCTSTR)(_bstr_t)pRst->GetCollect("IP"),Hostname=(LPCTSTR)(_bstr_t)pRst->GetCollect("hostname"),MAC=(LPCTSTR)(_bstr_t)pRst->GetCollect("MAC"); int IsOnline=(long)pRst->GetCollect("isonline"); CString OS=(LPCTSTR)(_bstr_t)pRst->GetCollect("OS"); m_Info.InsertItem(ID,(LPCTSTR)num); m_Info.SetItemText(ID,1,(LPCTSTR)IP); m_Info.SetItemText(ID,2,(LPCTSTR)Hostname); m_Info.SetItemText(ID,3,(LPCTSTR)MAC); m_Info.SetItemText(ID,4,(LPCTSTR)OS); ID++; pRst->MoveNext(); } pRst->Close(); dao.Close(); } catch (_com_error e) { MessageBox(e.Description()); } } (8) 定时刷新 void CLanManaDlg::OnTimer(UINT nIDEvent) { CString sql("select * from IPInfo where isonline=1"); switch(nIDEvent) { case 1: GetData(sql); break; case 2: break; default: ; } CDialog::OnTimer(nIDEvent); } (9) 搜索区域的显示与隐藏 void CLanManaDlg::OnButtonSorh() { static CRect RectLarge(0,0,0,0),RectSmall(0,0,0,0); if(RectLarge.IsRectNull()) { GetWindowRect(RectLarge); RectSmall=RectLarge; RectSmall.right-=200; } if(m_IsShow) { SetWindowPos(NULL,RectLarge.left,RectLarge.right,RectLarge.Width(),RectLarge.Height(),SWP_NOZORDER|SWP_NOMOVE); m_IsShow=false; } else { SetWindowPos(NULL,RectSmall.left,RectSmall.right,RectSmall.Width(),RectSmall.Height(),SWP_NOZORDER|SWP_NOMOVE); m_IsShow=true; } } 5 系统测试 5.1 测试目的 测试所做程序能否按照按照要求完成探测任务,是否能够快而准确的得到结果,能否满足用户的需求。 5.2 测试方法 在局域网信息探测与查询系统的开发环境下进行模拟测试,并组建一个小型的局域网来验证。 5.3 测试用例与测试结果 主界面如图5.1所示。 图5.1 程序界面 点击检测之后的结果如图5.2所示。 图5.2 程序界面 点击”检测”按钮后,该按钮会改变为“中止”按钮,在检测过程中如点击“中止”按钮,则会中止该次检测。 缩小探测范围所探测到的结果如图5.3所示。 图5.3 程序界面 若IP网段有所变化,可以点击“刷新”按钮,可以探测出新的网段。 刷新之前的界面如图5.4所示。 图5.4 程序界面 刷新之后的界面如图5.5所示。 图5.5 程序界面 如果在探测过程中有新的主机打开,同样可以点击“刷新”按钮,便可以将新的主机信息显示出来。 刷新之前的界面如图5.6所示。 图5.6 程序界面 刷新之后的界面如图5.7所示。 图5.7 程序界面 精确、模糊查询界面如图5.8所示。 图5.8 程序界面 在该界面,可以通过主机名、IP地址、MAC地址分别进行精确和模糊的查询。 精确、模糊查询的事例如图5.9、5.10所示。 图5.9 程序界面 图5.10 程序界面 5.4 测试结论 LAN管理器主机信息探测与查询子系统能够较好的实现主机信息的探测与查询任务,并且在其他主机防火墙开启的情况下依然可以探测到有效地信息,所显示的信息也比较准确,并且精确和模糊查询功能也能运行正常,能够在较短的时间内完成任务。所探测到的主机相关信息,可以同时更新到sql server数据库中,做到了对探测结果的有效保存。LAN管理器主机信息探测与查询子系统在功能方面,完成了探测与查询功能和防火墙穿越功能,在性能方面,能够在较短的时间内完成对单个或多个主机的信息探测,准确率也不低于90%,在用户方面,做到了操作简单、界面简洁、及时更新、数据存储等功能。LAN管理器主机信息探测与查询子系统基本完成了预期的目标。 结论 通过这次的局域网信息探测与查询系统的设计,让我受益良多。这是一次综合网络、数据库和VC编程的设计过程。我了解和掌握了网络的一些特性,并且能够进行数据库的设计和使用VC进行相关软件的编程,同时培养了正确的设计思想和分析问题解决问题的能力,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LAN 管理器 设计 实现 主机 信息 探测 查询 子系统 毕业设计 说明书
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文