通过 Winsocket 获取 Gateway 信息以及主机 IP 等相关信息
发布时间
阅读量:
阅读量
在开发过程中若采用WinPcap库,需获取局域网默认网关的IP地址及Mac地址。然而,通过WinPcap实现这一目标尚缺乏明确的思路。已知网关所接收与发送的数据包数量通常高于局域网内各主机,因此可通过抓包分析并据此判断网关的IP地址和Mac地址。不过,这种方式存在一定的不确定性。随后发现,借助WinSocket中的相关库能够有效获取网关IP地址,在实验前需包含必要的头文件(
// 获取Host IP(通过winsock2)
QString PcapCommon::getHostIpByWinSock()
{
char hostname[256] = {0};
WSADATA wsaData;
char ip[128] = {0};
// 调用Windows Sockets DLL
if (WSAStartup(MAKEWORD(2,1),&wsaData)){
printf("Winsock无法初始化!\n");
WSACleanup();
return 0;
}
if(gethostname(hostname, sizeof(hostname)) == 0){
// 结构
struct hos
全部评论 (0)
还没有任何评论哟~
