网络IP检测框架的基本设计思路

IP 定位框架 GeoIP2 for Java IP 定位框架 GeoIP2 for Java一、GeoIP2 简介二、GeoIP2 使用1、下载离线库2、添加 Maven 依赖3、封装 IP 定位工具类 一、GeoIP2 简介   GeoIP 官网:https://www.maxmind.com/en/geoip2-services-and-databases MaxMind 是位于马萨诸塞州的数字地图公司,提供全世界的IP地址的位置数据。MaxMind 的定位服务在全球范围内享有盛誉,是应用最广泛的定位服务。其提供 Geoip 和 Geo 阅读详情

网络IP检测框架的基本设计思路

 

一、考虑IP相关的应用需求

(1)在线休闲游戏中,有些房间为了防止玩家“开黑店”作弊,限制了同一个IP的两个账号不能同时登录同一个房间,然而玩家通过使用代理服务器隐藏自己的IP,就能逃过这个限制。关于代理服务器的内容,请参见博文:《代理服务器(代理IP)的入门与简介》。

(2)有时候,网游的发布与更新针对于各个大区并非是同时开放的,比如为了对升级版本进行测试,只在其中部分大区(如广东1、湖北1等)开放更新权限,则后台服务器需要清楚地知道客户端的IP归属区。

(3)网游或论坛的安全小组有权限指定用户或IP的操作权限,甚至能够封号或封IP,然而,目前固定IP非常少,网吧或公司很有可能借助于代理服务器,使内部网与外部网进行互通,所有用户对外的IP是唯一的。在不了解IP特性的情况下,不能轻易封IP。如对网吧中使用外挂的用户封IP,则该网吧中所有玩家都将无一幸免,这是极其不负责任的。

(4)B/S模式的各种Web应用(网站论坛)或C/S模式的软件(网游)都想了解每天的IP流量、IP的归属地、用户登录和操作时详细IP的信息,以便基于IP和用户相关属性分析用户特征与行为,从而更好的制定商业战略。

(5)网络应用的安全管理则期望通过IP信息分析用户异常的行为,如QQ的异地提醒,网游异地登录交易功能自动限制或锁定。

(6)搜索引擎或GFW能够屏蔽或封锁带有恶意插件、或者宣扬非法、反动、色情、暴力站点的IP。

(7)网络应用能够根据用户的访问IP提供更加精确和高质量的服务,如以今年春节在家使用Google搜索“天气”为例,搜索结果会默认提供我的家乡驻马店市的天气情况。

 

之所以举例子,无非是想说:IP对于网络的各种应用而言十分重要,无论是应用本身还是安全管理。想想看,谈到Internet,IP地址就不能不提,互联网上很多服务和特点都是通过IP地址体现出来的,连接于Internet上任意两台计算机之间进行相互通信时,它们所传递的数据包都会附加上IP地址信息,用于路由寻路,以完成数据传输。

通过上述例子,我们可以知道,IP检测的工作不是针对某一特定的聊天工具、网络游戏或Web服务,任何涉及网络的的应用都与IP息息相关。如果能够将此扩展形成一个比较通用的IP检测框架,提供IP信息检测服务,并为上层应用提供易于扩展和使用的接口、功能模块,则可以作为一个基础性的平台架构,用于任何网游、通信软件、网站的流量监控分析、限制代理IP用户、异地登录用户操作权限等,提供更加安全可靠的网络服务。

IP检测框架的工作将涉及到两个主要的方面:

(1)自顶向下的分析:主动收集、整理、检测、验证IP的相关信息。

(2)自底向上的分析:利用后台的Log日志或数据库相关信息,借助于数据挖掘、机器学习的手段分析IP的特性。

 

二、自顶向下的分析:IP地址基本信息的获取

在了解了IP地址的重要性之后,我们需要知道对于任意一个IP地址它有哪些基本的属性特征。根据我国2005年颁布的互联网IP地址备案管理办法,这里面要求了IP地址需要报备的信息:

(1)备案单位基本情况:包括备案单位名称、备案单位地址、备案单位性质、电信业务经营许可证编号、联系人姓名、联系人电话、联系人电子邮件等。

(2)备案单位的IP地址来源信息:包括IP地址来源机构名称、IP地址总量、各IP地址段起止地址码等。

(3)备案单位的IP地址分配使用信息:包括本单位自用的IP地址信息,包括IP地址总量、各IP地址段起止IP地址码、IP地址使用方式、网关IP地址、网关所在地址;尚未分配的IP地址信息,包括IP地址总量、各IP地址段起止地址码;向其他用户分配的IP地址信息,包括所分配的用户基本信息(包括用户名称、单位类别、单位所属行业、单位详细地址、联系人姓名、联系人电话、联系人电子邮件)、所分配的IP地址总量、各IP地址段起止地址码、网关IP地址、网关所在地址、IP地址使用方式。

(4)自带IP地址的互联网接入用户信息:包括用户基本信息(含用户名称、单位类别、单位所属行业、单位详细地址、联系人姓名、联系人电话、联系人电子邮件)、自带IP地址总量、IP地址段起止地址码、自带IP地址的来源、网关IP地址、网关所在地址、IP地址使用方式等。

结合上述信息,我们比较关心的IP相关属性可概括为:

(1)IP归属地:地理位置信息

(2)IP提供商:机构名称、IP地址总量、各IP地址段起止地址码

(3)IP所属单位属性:单位名称、单位地址、单位性质、联系人相关的信息(本单位自用的IP地址信息,包括IP地址总量、各IP地址段起止IP地址码、IP地址使用方式、网关IP地址、网关所在地址;尚未分配的IP地址信息,包括IP地址总量、各IP地址段起止地址码;向其他用户分配的IP地址信息,包括所分配的用户基本信息、所分配的IP地址总量、各IP地址段起止地址码、网关IP地址、网关所在地址、IP地址使用方式)

(4)自带IP地址的互联网接入用户:用户基本信息、自带IP地址总量、IP地址段起止地址码、自带IP地址的来源、网关IP地址、网关所在地址、IP地址使用方式等。

Internet IP地址由NIC(Internet Network Information Center)统一负责全球地址的规划、管理;同时由Inter NIC、APNIC、RIPE等网络信息中心具体负责美国及全球其它地区的IP地址分配。APNIC负责亚太地区,我国申请IP地址要通过APNIC,申请时要考虑申请哪一类的IP地址,然后向国内的代理机构提出。当前由于IPV4的局限性,导致世界范围网络IP地址(主要是公网IP)的馈乏,加快了下一代网络地址的出现,也就是IPV6。今年即2011年,IPV4地址将全部耗尽,Internet将开始过滤到IPV6阶段。

通过亚太互联网信息中心:http://www.apnic.net/home和whois命令来收集整理一些IP属性。其中,whois的命令可以参考博文:《whois命令简介》。

由上述可知对于IP信息的基本属性,我们通过whois命令即可获得,whois的使用手册可以从http://www.apnic.net/__data/assets/pdf_file/0004/8968/Whois-Manual-v1-Feb-2010.pdf下载。

 

三、自顶向下的分析:代理IP主动验证

在一些网络应用中可能存在用户使用代理服务器隐藏自己IP进行恶意攻击行为,而在有些游戏中,房间要防止玩家“开黑店”,限制了每个房间同IP只能一个登陆一个玩家,玩家通过代理服务器就能逃过这个限制。因此,提供一种在针对玩家IP检测的技术方案对于网络应用的安全防御将是非常有意义的。

检测目标IP是不是代理服务器的方式的最基本的思路是模拟成客户端向目标IP的主要端口发送代理请求,通过响应来判断目标IP是不是代理服务器。玩家在网络应用中所使用的主要代理方式为:

(1)HTTP CONNECT代理:允许用户建立TCP连接到任何端口的代理服务器,这种代理不仅可用于HTTP,还包括FTP、IRC、RM流服务等。

(2)SOCKS代理:是全能代理,就像有很多跳线的转接板,它只是简单地将一端的系统连接到另外一端。支持多种协议,包括HTTP、FTP请求及其它类型的请求。它分SOCKS 4 和SOCKS 5两种类型,SOCKS 4只支持TCP协议而SOCKS 5支持TCP/UDP协议,还支持各种身份验证机制等协议。其标准端口为1080。如下图所示的QQ中,就可以设置使用SOCKS5代理。

关于端口的选择,HTTP CONNECT代理,常用端口80、81、3128、8000、8080;SOCK4代理,常用端口1080;SOCK5代理,常用端口1080。我们在检测目标IP时,可以利用多线程技术,同时向多个端口发送请求,加快检测速度,扫描80、81、3128、8000、8080、1080这五个常用端口。

然而,也存在有一些代理服务器使用的端口为非常用端口,单纯的检测常用端口的方案将无法捕获。因此,我们还需要增加一种辅助的检测方案。如果从玩家本身的思维出发考虑,玩家想要隐藏自己的IP,就需要利用搜索引擎寻找一些提供代理IP服务的站点,同样地,我们也可以获取的这些站点所提供的代理服务器的信息。如果建立一套辅助的多线程抓取爬虫,从这些站点上抓取代理IP的信息,并进行定时地更新,就能够保证更大程度上地对使用代理的玩家做出防御与限制。同时,由于VPN类型代理的消息验证难于实现,因此,使用网页抓取的方式验证VPN代理应该是一种解决思路。在使用爬虫收集网络上公开的代理IP的过程中,我们可以统计分析它们的端口设置,除验证5个常用端口外,对其他一些经常出现的端口也进行检测。

最初的时候,为了验证我们的想法,爬虫的设计未必需要过多的智能化,我们可以先收集一些较为常用的网站列表,让爬虫定期去爬取数据。待整体框架比较清晰明了之后,可尝试让爬虫实现自适应、自更新、自学习地去主动寻找代理IP。我在网上找到了一些提供免费的代理IP的站点:

http://www.cybersyndrome.net/

http://www.pass-e.com/

http://www.cnproxy.com/

http://www.proxylists.net/

http://www.my-proxy.com/

http://www.samair.ru/proxy/

http://proxy4free.com/

http://proxylist.sakura.ne.jp/

http://www.ipfree.cn/

http://www.publicproxyservers.com/

http://www.digitalcybersoft.com/

http://www.checkedproxylists.com/

 

我们只关心最为常用的HTTP代理和SOCKS代理的验证,综上而述,对于一个用户的IP的检测行为可以分为以下几步:

(1)利用爬虫定期抓取互联网所能搜索到的代理IP的信息,分析常用的代理端口,并对这些代理IP进行验证,建立原始的代理IP数据库。

(2)判断用户IP是否已经进行过验证,是则从验证结果的名单中获得,跳转至第(4)步。

(3)由代理IP主动验证模块模拟客户端向目标IP发送代理请求以判定是否为代理IP,并将验证结果加入到相应的结果名单中。

(4)输出IP的验证结果。

 

单纯针对代理IP验证组件(Proxy IP Verification Component, PIPVC),其结构图可以设计为如下图所示。为保证组件的可复用性,我们需要对网络应用如网游A、网游B…网站W后台产生的Log、DB或缓存中所存储的IP信息进行格式化处理,对代理IP验证组件屏蔽与网络应用相关的业务逻辑。

其中PIPVC包含了三个主要模块:(1)代理IP主动验证模块:模拟客户端向目标服务器发送代理IP请求,根据目标服务器的反馈来判断是否为代理IP。(2)代理IP爬虫:定期抓取站点上所提供的代理IP的信息,并收集、整理、分析除5个常用端口外代理服务器最经常使用端口,为代理IP主动验证模块增加必要的检测端口,提高查全率。(3)名单更新模块:定期验证已经获得的名单信息是否仍然有效。名单的I/O将提供灵活接口,支持缓存、DB或Log等方式的写入与读取。

PIPVC的输出结果可以提供给网游A、网游B或网站W限制代理IP用户的上层应用逻辑所使用,从而实现与业务逻辑相关的安全访问控制的功能。代理IP爬虫具体的实现技术方案、细节、源代码将会在后续的博文:《用Python实现自动抓取代理IP的爬虫》中进行详细的讲解,请关注本博客的更新。

代理IP主动验证模块采用多线程形式完成IP的检测工作,其模块构造图如下图所示,具体细节尚未涉及,整个验证作业的框架流程可以参照博文:《一种面向作业流(工作流)的轻量级可复用的异步流水开发框架的设计与实现》。

 

代理IP检测线程构造示意图如下图所示,主要包括了SOCKS4、SOCKS5及HTTP CONNECT检测,具体的验证流程、细节以及源代码,将会在后续的博文:《代理IP的验证原理与代码实现》中将会进行持续的更新,请关注本博客的更新。

四、自顶向下的分析:教育网IP网段

教育网CERNET是由国家投资建设,教育部负责管理,清华大学等高等学校承担建设和管理运行的全国性学术计算机互联网络。它主要面向教育和科研单位,是全国最大的公益性互联网络。教育网以中心节点à地节网络中心和地区主结点à省教育科研网à校园网的方式部署,中心节点在清华大学,38个省级高校节点,800个以上的校园网。

教育网是有固定网段的,在CERNIC上有个查询系统可以确定某个IP是否是教育网IP:https://www.nic.edu.cn/cgi-bin/reg/Qfreeip,同时会告诉你此IP是否属于教育网的免费IP段。

教育网用户的IP特征判定:可直接查询教育网网段,即可判断一个IP是否是教育网IP。教育网IP网段信息可参考博文:《教育网IP网段(部分)》,更详细的教育网IP网段可从优快云资源库下载:教育网IP网段整理清单(2009年4月7日)。

 

五、自底向上的分析:获取隐含的IP属性

在自顶向下的分析过程中,我们通过whois可以了解基本的IP属性信息,又能利用检测技术和手段验证是否为代理IP。然而,一些隐藏的IP属性我们无法获知,这便有了自底向上的分析过程,帮助我们更加清晰地掌握用户的IP动态。在这一过程中,我们期望获知用户更加具体的IP环境,如是否是网吧、公司、固定IP、ADSL等。没有来得及深究其中细节,现只记录思路:

XDSL:数字用户线,分为ADSL(非对称)和HDSL(高速),利用传统电话线路的高频部分传输数字信号。接入方式: PPOE的虚拟拨号方式,适用个人用户,非固定IP;固定IP方式,适用于小型企业,网吧用户。

(1)ADSL用户IP特征:用户没有固定IP,每次用户接入互联网,则ADSL会从IP池中为用户分配一个空闲IP,用户使用完后,IP即被回收,如下图所示的“自动获得IP地址”选项。则一个IP会对应若干MAC地址,而任一MAC地址又对应若干IP。即一个MAC集合,对应一个IP段,但某一个时间点上,一个IP只对应一个MAC。但一个IP所对应的MAC量相对较少。

 

(2)网吧或企业用户IP特征:多个MAC对应一个IP,在一个时间点上,大量的MAC对应于一个IP。网吧几乎在任何时刻用户量都是很大的,尤其是深夜时分,因为包夜的人多,而企业则不同,到了深夜就几乎没人了;网吧游戏玩家比较多,企业则以办公为主,依靠这些特征,并结合具体的应用场景可以把网吧跟企业的IP环境做次细分。如某款游戏在午夜仍然有大量的MAC或账号对应同一IP,则很有可能是网吧用户。

(3)固定IP用户:一个MAC对应一个IP,该类用户数量较少。可统计分析相对较长一段时间内用户的IP是否一直不发生变化。

网游、网站或网络应用的后台会记录大量的与用户IP相关的信息(如登录、登出、在线时长等),按照上述的规则,建立相应的数据挖掘和机器学习的模型,我们可以更加动态、灵活地掌握用户IP更加隐含的信息。

单纯针对IP特征挖掘组件(IP Feature Mining Component, IPFMC),其结构图可以设计为如下图所示。为保证组件的可复用性,我们需要对网络应用如网游A、网游B…网站W后台产生的Log、DB或缓存中所存储的IP信息进行格式化处理,对IP特征挖掘组件屏蔽与网络应用相关的业务逻辑。

其中IPFMC包含了五个主要部分:(1)IP特征描述规则:制定一系列的数据挖掘和机器学习的条件和规则。(2)ADSL用户IP特征挖掘模块:识别IP环境是否为ADSL。(3)网吧用户IP特征挖掘模块:识别IP环境是否为网吧。(4)企业用户IP特征挖掘模块:识别IP环境是否为企业、公司。(5)固定IP特征挖掘模块:识别此IP是否为固定IP。

IPFMC的输出结果可以提供给网游A、网游B或网站W上层应用逻辑所使用,从而借助于IP实现相关的业务逻辑控制。这学期准备自学数据挖掘和机器学习的东东,目前对于这块内容的考虑还不是太成熟,我会继续努力的。IP特征挖掘具体的实现方案、细节、源代码将会在后续的博文:《利用数据挖掘分析网络IP隐含属性》中进行详细的讲解,请关注本博客的更新。

六、网络IP检测框架

综上而述,我们可以得出通用的网络IP检测框架的基本构架图如下所示:

七、IP相关的安全应用实例

(1)从3个月的登录/登出Log日志中获取用户账号对应的IP段,将每天的IP按归属地归类后存入数据库,将今天出现的IP段活跃天数+1,计算出所有IP段的活跃天数,以此来判断用户某次IP登录是否有异常,是否为异地登录,是否需要对比较重要的功能进行限制等。如下图所示的QQ异地登录提醒。

 

(2)QQ客户端登录的IP与DNF/CF(腾讯代理的网游)登录的IP相差太大时,这种可以理解为突然之间的异地登录,此时游戏账号有可能被盗,这种情况下的游戏道具交易功能将被锁定。

(3)统计用户在线时长、在线钟点等规律,判断用户的身份、操作行为与习惯,精确了解和掌握产品的消费动向,更精确地制定和推广商业战略。

 

八、总结

网络IP检测框架思想来源于暑假实习时所参与的一个课题,当时是集中于如何实现代理IP的验证。在做的过程中,我就感觉到很有必要扩展思维,在此基础上形成一个比较通用的IP检测框架,提供给各种网络应用的上层使用。趁寒假这段时间,先把这个思路整理一下,很多细节会在后续博文中进行详细介绍。时间有限,疏漏在所难免,各位看观见笑了~

当恶意用户使用代理 IP 池(每秒切换 10 个 IP)绕过 IP 限流时,如何提升检测准确率? 在《高并发抢券系统设计之防刷篇:防刷策略全解析,从规则引擎到智能风控的立体攻防》中,我们深入探讨了高并发抢券系统的防刷策略。这一问题直击防刷体系的核心漏洞 —— 传统基于单一 IP 的检测机制,在动态变换的 IP 攻击下显得捉襟见肘。本文将结合多层防护思路,为你拆解应对代理 IP 攻击的进阶方案。 阅读详情

相关推荐

如何检测网络中的重复IP地址 防止IP地址冲突实战指南

在局域网运维中,IP地址冲突是导致网络时通时断的常见故障。其原理在于同一IP被多台设备占用,引发ARP表项反复刷新。通过ARP探测、DHCP Snooping及自动化巡检脚本,可有效检测并预防此类问题,保障网络稳定。本文围绕重复IP地址检测与IP地址冲突防止,结合arping、Nmap、arp-scan等工具,提供从排查到自动化的完整方案,适用于中小企业运维与实验环境。

weixin_30846347的博客 240

如何通过IP查询服务器的操作系统类型

因为工作的原因,公司老板让我与游戏公司技术部联系,做一些技术上的合作。然后我们联系了一些IDC商,我给他们技术提供了一个双线服务器,发给他两个ip地址,让他测试一下速度怎么样,只是给他提供IP地址,没有给他权限。过了一会,他给我说,这两个ip不是同一台机子,一个是LINUX系统,一个windows系统。我当时一听,晕了,他是怎么知道的呢。说实话,以前我很少接触LINUX系统,更不知道如何能判别出来

付亚辉的专栏 6495

使用PowerBuilder实现网络连通性检测

在现代IT运维管理中,网络检测功能是不可或缺的一部分,它帮助管理员快速定位网络问题,确保网络服务的稳定性和安全性。PowerBuilder作为一种成熟的应用开发工具,虽然主要面向数据库和数据管理应用,但通过适当的编程技巧,也能够实现网络检测的相关功能。本文将介绍如何使用PowerBuilder编程来实现网络检测功能,包括但不限于ICMP回显请求(PING命令)、IP地址合法性验证、网络连通性测试以及结果的图形化展示等。在IT行业中,网络故障诊断是确保网络稳定性的重要环节。

weixin_35696112的博客 946

19 IP安全框架

retacn_yue的专栏 153

光线追踪渲染实战:蒙特卡洛路径追踪及其c++实现

光线追踪超越了传统的图形流水线,是一种现代的渲染。光线追踪是一种基于物理的渲染方法,通过模拟光在介质中的真实表现来输出足以逼近现实的图像。光线从光源出发,经过各种反射折射,进入摄像机。通过渲染方程描述一点的颜色,并且通过蒙特卡洛方法求解渲染方程来获取最终的像素颜色。

AKGWSB 's blog 1万+

VECTOR硬件VN1600系列对比:VN1610、VN1611、VN1630A、VN1640A、VN1630log、VN1670

VN16系列说不清道不明的区别和关系

AmorRun的博客 2万+

TCP/IP框架总结

TCP/IP框架总结 TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,其实链路层后面还有一层叫物理层,不过通常称之为物理介质,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系本身就很复杂庞大,入门门槛高,因此很难搞清楚TCP/IP的工作原理,通俗一点讲就是,一个主机的数据要经过

weixin_44502896的博客 1893

【Python】torch_npu

Ascend AI处理器核心计算范式与PyTorch的桥接艺术:深入探索torch_npu的基石要真正理解,我们必须首先超越其作为PyTorch后端库的表面认知,深入其所服务的硬件——华为昇腾(Ascend)AI处理器的核心计算范式。这不仅仅是关于如何在NPU上运行PyTorch模型,更是关于NPU如何设计其计算,以及如何巧妙地将这种硬件特性映射到PyTorch的抽象层之上。1. 昇腾AI处理器的达芬奇架构:极致算力的源泉昇腾AI处理器并非传统的CPU或GPU。它采用了华为独创的达芬奇(Da Vinci)架

宅男很神经 5366

TCP/IP架构

tcp/ip 与osi 模型比对 协议各层组成部分 tcp/ip协议集 tcp/ip 各层主要协议依赖关系 各层报文封装:pdu最多1460字节 网络五层 应用层(Application Layer) 规定应用程序的数据格式: Email、WWW(http协议,webSocket协议)、FTP有不同的协议规定数据格式,这些协议构成应用层。 数据位于TC...

1 2992

ArcMap 10.7/10.8启动加载界面后闪退?可能是这个隐藏的Normal.mxt模板文件在搞鬼

本文深入分析了ArcMap 10.7/10.8启动加载界面后闪退的问题,指出Normal.mxt模板文件损坏是常见原因。提供了从定位、删除模板文件到系统级修复的完整解决方案,帮助GIS工程师快速恢复工作流程。

weixin_28523493的博客 329

【ROS2】手眼标定:moveit2_handeye_calib使用详解

moveit2_handeye_calib MoveIt2 官方的 手眼标定功能包,包含标定插件、图形化界面和示例程序。提供基于 ArUco/ChArUco 标定板的采集与求解功能。标定板下载aruco在线生成器。

郭老二 246

新手小白如何快速检测IP 的好坏?

新手如何快速检测IP质量?本文介绍了针对Google Voice、Facebook等平台的风控原理和IP检测方法。推荐使用ipinfo.io判断IP类型(住宅/机房)、ipdata.co查看信任分数(Low Risk为佳)、ipjiance.com检测IP质量及原生性,以及IPQualityScore脚本进行综合验证。优质IP应满足双ISP、低风险评分、良好质量等标准,原生性(广播与注册地一致)是加分项。建议多工具交叉验证,定期更换IP,敏感业务可考虑多节点IP池组合。通过这套方法可有效筛选出稳定安全的IP

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 6542

【绝对要收藏-优秀论文范文】高项-度量绩效域

摘要:本文基于某水库数字孪生平台建设项目(2022.9-2023.5,645.97万元)的管理实践,从信息系统度量绩效域角度展开论述。项目构建了包含防洪调度等6大子系统的数字平台,实现洪水"四预"功能。重点分析了度量绩效域的五大要点:制定有效指标(如成本±8%偏差阈值)、多维数据采集、预警临界值设定、基于趋势的主动干预和持续改进机制。特别阐述了绩效问题的诊断方法,包括设备采购全周期成本分析、阶段性成本报告制度等。项目状态展示采用三维可视化看板,集成进度、成本、质量等多维度实时数据,最终实

xylllamm的博客 344

反弹shell检测的一些思路

反弹shell是攻击者常用的手段之一,通过反弹Shell,攻击者可以绕过防火墙,获取目标系统的shell访问权限,进行后续的恶意操作。因此,及时检测并阻止反弹Shell行为对于安全防护来说非常重要。本文通过介绍反弹shell的常用手段,探讨检测的思路以及简单的代码实现。

2401_84488651的博客 1491

STM32实战开发(121):基于STM32的智能电导率检测系统设计与实现

STM32系列是由意法半导体(STMicroelectronics)推出的32位微控制器。STM32系列基于ARM Cortex-M处理器架构,具有高性能、低功耗、丰富的外设接口和强大的开发支持库。STM32的低功耗特性使其在嵌入式系统中非常受欢迎,特别是在便携式设备和传感器网络中。

2201_76125393的博客 1041

多尺度仿真软件:Copasi_(1).Copasi概述

Copasi(Complex Pathway Simulator)是一款开源的多尺度仿真软件,专为生物化学、系统生物学和合成生物学领域的研究人员设计。它不仅能够模拟细胞内和细胞间的生化反应网络,还能处理代谢途径、信号传导途径和基因调控网络等多种复杂系统。Copasi提供了用户友好的图形界面和强大的命令行接口,支持多种仿真算法和分析工具,使用户能够高效地进行模型构建、仿真和分析。Copasi允许用户创建自定义报告,以便生成特定格式的仿真结果。用户可以通过图形界面或命令行创建自定义报告。

kkchenjj的博客 856

网络安全与IP安全网络安全

此部分属于安全的拓展内容了,所以本次只做大致了解,知道有这些协议个方法来应对各个层的安全威胁就行了接下来我将给各位同学划分一张学习计划表!

z099164的博客 1649

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

毕业设计:基于信息安全的网络攻击检测系统

毕业设计:基于信息安全的网络攻击检测系统采用先进的流量分析技术和机器学习算法,实现对网络流量的实时监控和异常检测。系统通过收集并分析网络流量数据,结合已知的攻击模式和特征,识别出潜在的网络攻击行为。为计算机毕业设计提供了一个创新的方向。该系统的研究和实现结合了信息安全和机器学习领域的前沿技术,为毕业生提供了一个有挑战性和实用性的研究课题。对于计算机科学、信息安全、人工智能等专业的学生而言,这将是一个宝贵的实践机会。

2301_79555157的博客 2411

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C++入侵检测与网络攻防之IP/TCP报文拆解以及SSH识别

C++入侵检测与网络攻防之IP/TCP报文拆解以及SSH识别

qq_27302885的博客 1251

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【C#】测试网络IP连通

我能抽象出整个世界,但是我不能抽象你。想让你成为私有常量,这样外部函数就无法访问你。又想让你成为全局常量,这样在我的整个生命周期都可以调用你。可惜世上没有这样的常量,我也无法定义你,因为你在我心中是那么的具体。哈喽大家好,本专栏为【项目实战】专栏,有别于【底层库】专栏,我们可以发现增加 了『问题描述』、『项目展示』章节,十分符合项目开发流程,让读者更加清楚项目解决的问题、以及产品能够达到的效果。

花北城的博客 4365

分布式爬虫如何设计高可用IP池?架构思路详解

在数据采集项目中,随着抓取规模扩大,单节点爬虫往往难以满足高并发需求,因此很多团队会采用分布式爬虫架构。但在实际运行中,请求量增加后,IP也更容易被封,进而影响整体采集效率。

Tianqi_daili的博客 340

网络故障排查简单思路

网络故障排查简单思路 查看网络是否正常,一般先确保以下设置是否正确 首先查看物理层问题,例如网线是否连接正确 查看本机配置,如ip地址和子网掩码是否设置正确 (ifconfig),默认网关是否设置正确 (route),域名服务器是否设置正确 然后要确认网卡本身是否能正常工作?利用ping工具可以确认这点。输入ping 127.0.0.1,然后看是否能正常ping通?这里的127.0.0.1被称为主机的回环接口,是TCP/IP协议栈正常工作的前提。如果ping不通,一般可以证实为本机TCP/IP协

qq_40741808的博客 2639

前端怎么获取本机电脑ip么_网络故障怎么办?排障思路清晰是关键

一、网络排错必备为什么还要必备条件?因为这里所讲的网络排错并不仅仅是停留在某一个小小命令的使用上,而是一套系统的方法,如果没有这些条件,难以在项目中灵活运用,所以还是先看看这些基础的条件吧。1、了解网络通信的基础设备和其对应的OSI层次像交换机、三层交换机、路由器、防火墙这些最基本的网络设备应该要有些了解,尤其是它们对应的OSI层次以及作用,比如普通的二层交换机对应OSI七层模型中的数据...

weixin_39839541的博客 447

【计算机网络】网络排错思路总结

⟳其实基本上,一个相对完整的网络排错过程就应该如上面所说的了,不过,是基本上的,因为上面的讲解,都几乎是假定你是没有权限进入机房查看网络设备的情况的。事实上,你是根本不需要照搬来进行上面的全部步骤的,在实际排错的过程中,可能你用到的只是其中的一小部分而已,毕竟,如果每次都这样下来,没有谁是不会疯掉的,因为一些很简单的问题也要这样折腾,那就是太浪费时间了!但是,上面的方法,只是提出一种网络排错的思路,希望按照这个思路可以判断出网络的问题出现在哪里,至于如何去解决,这中间真的又涉及到太多太多的经验问题。

weixin_30357183的博客 106
上一篇: 教育网IP网段(部分)
下一篇: 2010年度优快云十大博客文章
MONKEY_D_MENG
博客等级 码龄17年 705粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值