VC如何限制PC机上网

工业自动化控制行业数据安全解决方案 一.需求背景 1.工业自动化控制技术发展状况 随着计算机技术、通信技术和控制技术的发展,工业自动化控制已经开始向网络化方向发展,从最初的CCS(计算机集中控制系统),到第二代的DCS(分散控制系统),发展到现在流行的FCS(现场总线控制系统)。现阶段,又将诸如嵌入式技术、多标准工业控制网络互联、无线技术等多种当今流行技术融合进来,从而拓展了工业控制领域的发展空间,又带来新的发展机遇。 但同时 阅读详情

关键字:限制上网 SPI 获取IE代理地址

  某些程序需要实现控制计算机上网的功能,譬如允许孩子星期六8:00-20:00可以上网,其他时间不能上网。经过研究,用户态下实现这个功能大致有以下几种方法(以下讨论基于windows各平台): 
  1、使用windows Hook,监视IE或其他浏览器的地址栏,发现有www或http字样的,则更改这些url,使之不能访问相应的url。这种方法实现可能相对容易,但是不准确,不能限制所有的上网软件。糊弄未成年小孩可能比较有效。 
  2、基于SPI的数据包过滤。通过编写自己的Winsock服务提供者(SPI),过滤掉不符合规则的包,如过滤访问Internet的数据包。下面会详述此方法。 
  3、使用Winsock 2的WSAIoctl特性进行包过滤。WinSock 2允许程序使用WSAIoctl() 给一个SOCK_RAW类型的socket设置SIO_RCVALL属性,这样Socket可以接收到所有经过本机的数据。此方法详细参阅文档“无需驱动程序的Sniffer-IPMon” 
  以上三种都是在用户态(user-mode)的实现方法。优点是方便实现,无须编程者理解驱动方面的知识,缺点是还是可能遗漏一些数据包,譬如那些一些病毒软件可能不通过socket接口来访问网络,这样用户态的程序就无法捕获到这些包。但由于我们的目的是限制普通用户上网,而不是做防火墙,所以第2种方法基本可以接受。至于第3种方法,据文档1描述经常无法看到本机发出去的数据包,我也没有仔细测试,有兴趣的朋友可以自己试试。 
  第2种方法主要参考了VC知识库《在线杂志》第20期中TOo2y的文章:“基于SPI的数据报过滤原理与实现”。Windows也有一个例子 Layered.zip。另外, 《windows网络编程技术》(Anthony Jones著 京京工作室译,机工出版),这本书第14章“Winsock2服务提供者接口”较详细讨论了SPI知识。 
  下面讨论实现方案。以一个局域网中的电脑为例,实现目标是:不能访问Internet,但可以访问局域网。我们知道,PC机上网有两种方式:A 通过网关(路由器)上网,B 通过代理服务器上网。 
  对于A,则其访问Internet时的地址都是公网地址,我们直接通过自己的传输服务提供者直接过滤掉。如下:

int WSPAPI WSPSendTo(
		 SOCKET           s,
		 LPWSABUF         lpbuffer,
		 DWORD            dwbuffercount,
		 LPDWORD          lpnumberofbytessent,
		 DWORD            dwflags,
		 const struct     sockaddr FAR *lpto,
		 int              itolen,
		 LPWSAOVERLAPPED  lpoverlapped,
		 LPWSAOVERLAPPED_COMPLETION_ROUTINE  lpcompletionroutine,
		 LPWSATHREADID    lpthreadid,
		 LPINT            lperrno)
{
	
	struct sockaddr_in sin;	
	sin=*(const struct sockaddr_in *)lpto;

	//过滤掉访问地址不是本地局域网的包,下面只是简单认为192.168.*.*是局域网的IP,具体需
	//根据不同的局域网网络地址进行设置。

	if (192 != sin.sin_addr.S_un.S_un_b.s_b1)
	{
		OutputDebugString(_T("WSPSendTo Tencent Filtered"));
		return 0;
	}
	else
	{
		return nextproctable.lpWSPSendTo(s,
					 lpbuffer,
					 dwbuffercount,
					 lpnumberofbytessent,
					 dwflags,
					 lpto,
					 itolen,
					 lpoverlapped,
					 lpcompletionroutine,
					 lpthreadid,
					 lperrno);
	}
}            

  对于B,由于PC机是通过局域网中的代理上网的,所以其所有的上网数据包通过先发给本地代理,然后代理将它请求的网页返回给它,所以其访问Internet是间接的,其访问Internet时发出的包都是局域网的IP。这样上面的过滤规则就不适用。怎么办?我们可以先取得IE的代理服务器IP地址和端口号,然后将包的地址和端口号与IE的代理IP地址和端口号比较,如果都相等,则过滤此包。这样就可以限制PC机通过代理上网,同时不影响它访问代理服务器的局域网资源。 
  至于如何获取IE的代理服务器地址和端口号,可使用下面代码:

	INTERNET_PROXY_INFO *pIEinfo = NULL;
	DWORD dwSize = 0;
	BOOL bRet = InternetQueryOption(NULL, INTERNET_OPTION_PROXY, pIEinfo, &dwSize);
	pIEinfo = (INTERNET_PROXY_INFO*)new char[dwSize];
	bRet = InternetQueryOption(NULL, INTERNET_OPTION_PROXY, pIEinfo, &dwSize);       

结束语
  这样,将两种上网途径都屏蔽掉,达到了限制PC机上网的目的。欢迎大家讨论。

VC禁止在任务管理器结束进程实例 禁止用户在任务管理器结束指定的进程。 详情请登录 http://blog.youkuaiyun.com/wangningyu 立即下载

相关推荐

vc++实现禁止上外网,但是能访问局域网的功能_国家为什么禁止外网

vc++实现禁止上外网,但是能访问局域网的功能 visual c++实现让电脑禁止访问互联网,但是能够局域网通信 的功能

禁止电脑上网

用其中一台做服务器,装Win2000或WinXPPRO版(才有服务器功能)。另一台接入服务器,作为客户端。服务器有管理客户端的权限,比如是否允许上网等。 两台为平行等级的工作组,一台设置正确的DNS,另一台设置错误的DNS(偷偷的,不让他知道),就不能上网了。 禁止上网的那台可以装限制软件。 装防火墙,然后禁止重要的端口。 乱设一个错识的

zyx_hawk的专栏 6478

VC++实现禁用USB接口、禁止上网功能

VC++实现禁用USB接口、禁止上网功能 visual c++禁用U盘,禁用网口

如何限制PC机上网

如何限制PC机上网作者:yy2better关键字:限制上网 SPI 获取IE代理地址  某些程序需要实现控制计算机上网的功能,譬如允许孩子星期六8:00-20:00可以上网,其他时间不能上网。经过研究,用户态下实现这个功能大致有以下几种方法(以下讨论基于windows各平台):   1、使用windows Hook,监视IE或其他浏览器的地址栏,发现有www或http字样的,则更改这些url,

千慧的专栏 1536

visual c++实现断网-禁用网卡,禁用网络.zip

vc实现禁用网卡,禁用网络.zip

IAR链接器配置文件(.icf)实战指南:从内存映射到代码布局

本文深入解析了IAR链接器配置文件(.icf)的核心作用与实战配置方法。作为嵌入式开发的“内存地图”,.icf文件精确控制代码与数据在Flash和RAM中的布局。文章从定义存储空间、划分区域、预留栈堆,到精确放置中断向量表、代码段及初始化控制,提供了完整的配置指南与避坑技巧,帮助开发者优化内存使用,解决链接错误,是掌握嵌入式系统底层内存管理的关键。

fun88的博客 918

电脑怎么禁止软件联网?电脑怎么限制软件上网?方法很多,这三种最常用!

此外企业老板考虑到公司员工可能会在工作期间访问无关软件,影响工作效率,因此,很多用户希望能够禁止某些软件联网,以确保隐私和网络安全。作为一款功能强大的企业管理软件,安企神不仅能够监控和管理电脑使用情况,还具备限制软件上网的功能,特别适合企业或团队管理。通过这项功能,管理者可以灵活设置某些软件的联网权限,防止未经授权的软件访问外部网络。安企神的优势在于,它不仅能够对软件进行联网限制,还能够对整体网络流量进行监控,非常适合需要精细管理网络资源的用户或企业。以下是三种最常用的方法,帮助你轻松实现软件的联网限制。

2401_83058349的博客 1万+

485芯片AB波形正负半周的问题探讨

      本人做的一个产品,产品的其中一个接口是RS485的,我们使用的芯片是MAX13487E。MCU是STM32F103,MCU的USART通过光耦隔离后,接到MAX13487E。因为STM32F103的VCC是3.3V的,MAX13487E的VCC是5V。      部分原理图如下,上述部分电路参考了官方的参考设计,现在测试的AB波形时候发现如下问题。1.把R10和R16改为1k,示波器C...

qq_26308521的博客 1万+

教学:使用C++技术限制电脑上网,网友:如今更厉害了

限制上网 SPI 获取IE代理地址 某些程序需要实现控制计算机上网的功能,譬如允许孩子周末晚上8点到10点左右可以上网,其他时间不能上网。经过研究,用户态下实现这个功能大致有以下几种方法(以下讨论基于windows各平台): 1、使用windows Hook,监视IE或其他浏览器的地址栏,发现有www或http字样的,则更改这些url,使之不能访问相应的url。这种方法实现可能相对容...

850

卡尔曼滤波、互补滤波与Tsinghua滤波:平衡车姿态感知的三大算法对比

本文对比了平衡车姿态感知中的卡尔曼滤波、互补滤波与Tsinghua滤波三大核心算法。互补滤波计算简单,适合入门;卡尔曼滤波理论最优但实现复杂;Tsinghua滤波则是一种面向嵌入式优化的轻量级方案,通过动态权重调整和零偏估计,在资源受限的MCU上实现了性能与效率的平衡,是智能车竞赛等场景的实用选择。

weixin_29232121的博客 349

西电2023秋季机器学习复习提纲

西电2023秋季机器学习复习提纲,希望对学弟学妹有帮助

weixin_62083045的博客 5679

VC++实现禁止上网

1、使用windows Hook,监视IE或其他浏览器的地址栏,发现有www或http字样的,则更改这些url,使之不能访问相应的url。这种方法实现可能相对容易,但是不准确,不能限制所有的上网软件。糊弄未成年小孩可能比较有效。  2、基于SPI的数据包过滤。通过编写自己的Winsock服务提供者(SPI),过滤掉不符合规则的包,如过滤访问Internet的数据包。下面会详述此方法。  3、使用W

尹成的技术博客 5651

抖音直播间人气接口算法 抖音协议

抖音直播间人气接口算法 抖音协议 抖音算法

Q44804487的博客 1万+

企业AI选型大揭秘:扣子(Coze) Bot与微信对话开放平台深度剖析

本文对比分析了字节跳动的扣子(Coze)Bot和腾讯的微信对话开放平台两款AI聊天机器人解决方案。扣子(Coze)Bot凭借强大的大模型支持、丰富的插件生态、低代码开发及多平台部署能力,在功能丰富度和灵活性方面表现突出,适合技术实力强、业务场景复杂的企业。微信对话开放平台则依托微信生态优势,在客户服务和营销推广场景中更具优势,其零门槛接入方式更适合技术能力较弱的企业。企业在选型时应综合考虑规模、预算、业务场景和技术能力等因素,选择最适合的AI解决方案,以充分发挥AI技术价值,提升企业竞争力。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 434

【100%通过率】华为OD机试真题 Java&Go 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

移动互联网的技术趋势:从APP到Mobile Web

由 iefreer 于 星期六, 04/16/2011 - 11:36 发布 90年代起,随着Windows图形界面操作系统的逐渐成熟稳定,桌面应用遍地开花,使得PC很快成为办公、生活的信息中心。 微软/Intel也顺理成章的随之成为PC时代的代表。并实际上垄断了PC行业。 那是一个程序员等同于Windows程序员的时代, VC/VB/Delphi/PB是桌面应用的主流开...

dfdfdf 283

Python 爬虫实战:爬取 BOSS 直聘职位,实现岗位要求关键词提取

摘要:本文基于BOSS直聘数据分析师岗位信息,采用Python爬虫技术获取职位数据,通过文本分析和可视化方法研究岗位技能需求特征。研究首先设计爬虫程序获取职位基本信息和岗位要求文本,经数据清洗后运用jieba分词和词频统计提取关键词。结果显示SQL、Python为最核心技能,不同级别岗位需求差异明显:初级重基础数据处理,高级需建模和管理能力;行业间亦存在差异,互联网关注用户增长,金融侧重风控。研究为求职者技能提升提供了数据支持,同时展示了从非结构化文本中挖掘有价值信息的完整流程。

2503_91057718的博客 1766

手机软件成无线增值香饽饽 吸引VC还需三大支点

每天,都有成千上百万的新应用程序被添加至Apple Store,苹果迷们习惯在Apple Store下载自己喜爱的应用程序,不管是游戏、社交、体育、新闻、商务,找到需要的点击买下它的使用权,通过无线网络下载软件。  为此,每天不知有多少家第三方手机软件开发商为挤入Apple Store的软件排行榜前列而争得头破血流,因为其背后蕴藏着的可能是数十万元、上百万元甚至更大规模的经济效益。  全球市场带来

mingxunzh的专栏 597

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Windows 7 64位系统重装全攻略:从原理到避坑的完整指南

操作系统重装是计算机维护与系统管理中的一项基础且关键的技能,其核心在于理解引导原理、硬件驱动兼容性与系统部署流程。从技术原理层面,这涉及引导模式(Legacy BIOS与UEFI)、磁盘分区表(MBR与GPT)的匹配,以及系统镜像的完整性与纯净性验证。掌握这些原理,不仅能解决老旧硬件或特定专业软件的兼容性需求,更能提升对计算机底层工作逻辑的理解,具备广泛的工程实践价值。在应用场景上,无论是企业环境中维护老旧的工控设备、专业领域(如CAD设计)中运行仅兼容旧版系统的插件,还是为个人老式计算机进行性能恢复,一套

479

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

wince4.2模拟器

http://ccj.pasts.org/2009/11/wince42.html 2009-11-09 wince4.2模拟器 xpsp3下 先找MS的EVC4.0安装(类似于VC6.0)的专门开发Wince下程序的集成开发环境.然后再打包,Sp2及Sp4. 最后安装一个Wince.Net 4.2 SDK,类似于PlatformSDK.。

syflyhua的专栏 2218

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 简单密匙加密解密
下一篇: 反汇编iphone 电话api
dadalan
博客等级 码龄20年 428粉丝 770原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值