VB判断计算机是否在学校

来源:百度知道 编辑:UC知道 时间:2024/06/17 08:22:28
我有很多用VB编写的程序,同学需要使用,但我不想让他们带回家,所以想在程序里加上一段代码判断计算机是否是学校的电脑(学校电脑都装有联想或方正的还原卡)。

我有以下思路:

1、搜索硬件,判断是否有还原卡。
2、搜索已安装软件,判断是否有还原卡。
3、判断该电脑上网的方式,是直接上网还是通过局域网共享上网
4、判断IP区域(假设接入公网,不到万不得已不要用)。
但是想不出具体方法,望高人帮助
关于判断IP范围:
有具体例子么?我家和学校很近,都是电信的,再说有时候没有网络,说了是万不得已的。
搜索网段搜出来只知道是哪个城市。
************************************
还有一个思路:判断本机是不是教育网。
************************************
另外,获取硬盘序列号的我有,但是学校里的电脑每一台硬盘序列号都不同。
最好能不用收集那么多IP

首先要确定你同学家有网,否则是无稽之谈(病毒类保存打开数据后,检测到有网再发出去的除外,当然你也可以做)。
最好的办法就是用IP了。获取IP很容易吧,以文件或者流的方式发送到指定的服务器或者IP地址容易吧。最主要就是IP判断,笨点就手动判断www.ip138.com搜索网段,要么就就网上找找 判断内网外网IP的办法。
能搜集到IP还不好办么。。。

还是建议你使用注册的方法,
1.当在学校网中使用时,可设计成依赖学校网及机器码自动注册。
2.如果从学校带出去使用,因找不到学校网,则弹出注册对话框重新注册。
即两种注册方式。

正如你所说的,只要判断本机是不是教育网就可以了。
特点是:代码少,效率高,通用性强。
只要在你写的应用程序的load内插入以下代码即可:

Dim WS, IPAddress
IPAddress = "127.1.1.1" '这是你教育网的IP地址,请修改
'如果是多个IP地址,可用逗号分开:IPAddress = "127.1.1.1,127.1.2,127.1.3"
Set WS = CreateObject("MSWinsock.Winsock")
If InStr(IPAddress, WS.LocalIP) = 0 Then
MsgBox "非法运行本软件!", vbCritical, "提示"
End
End If
Set WS = Nothing

通过WMI方式取得系统还原卡信息,取其中几个字符为关键字,
然后和使用机器的IP网段进行加密运算(例如异或),
在程序运行前要求输入满足加密字串的字符,
否则直接终止程序。

既然你可以