Advertisement

通过 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)

还没有任何评论哟~