操作系统:Windows,语言:C ++
我正在实施此用例: 当用户启动我的软件时,软件需要知道他/她的PC当前是否连接到指定的网络(例如大学校园内联网)。只有在是的情况下,才会启用某些软件的功能。
我是这个领域的新手,实在无法说出可靠的编程方式。函数GetComputerNameEx(https://msdn.microsoft.com/en-us/library/windows/desktop/ms724301%28v=vs.85%29.aspx)似乎很有希望。如果此函数适用于我的用例,我可以依赖此函数获得哪些数据?
提前致谢!
答案 0 :(得分:1)
更可靠的指标之一是存在某些MAC地址:这些仅在局域网内可见,而不是在全球互联网上。即使在NAT的IPv4网络上,MAC地址也将是全球唯一的。
在Windows上,您可以尝试SendArp
答案 1 :(得分:0)
我认为你只能知道这台电脑是否连接到互联网。 您无法使用集线器找到大学互联网或某个家庭网络之间的差异。
您必须通过ping一个已知良好的服务器(例如google.com
),ping您的authserver或任何可以确保本机连接到互联网的方式来检查此连接。
#include <iostream>
#include <windows.h>
#include <wininet.h>
using namespace std;
int main(){
if(InternetCheckConnection(L"http://www.google.com",FLAG_ICC_FORCE_CONNECTION,0)
{
cout << "connected to internet";
}
return 0;
}
refrence :