日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Windows下配置使用WinPcap

發布時間:2023/12/13 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 Windows下配置使用WinPcap 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0、前提

windows: win7 x64

WinPcap版本:4.1.3

WinPcap開發包:4.1.2

目標:在VS2010中配置使用winpcap 獲取目標計算機中安裝的網卡列表

1、下載

http://www.winpcap.org/

下載winpcap安裝包 和 開發包

安裝包安裝完畢后,解壓開發包到某個目錄即可,開發包免安裝。

3、在VS2010中配置

配置頭文件 和 庫文件

項目屬性--VC++目錄--包含目錄 / 庫目錄

4、Demo

獲取本機 / 遠程機器上網卡的列表和相關數據

/*******************************
函數成功返回 0
失敗返回      -1
*******************************/
int 
pcap_findalldevs_ex(
char *source,                //本機/遠程機器/文件
struct pcap_rmtauth *auth,   //目標機器用戶名 密碼
pcap_if_t **alldevs,         //輸出參數,詳細信息
char *errbuf                 //緩沖區 大小為PCAP_BUF_SIZE,函數失敗時保存錯誤信息
);

pcap_findalldevs_ex函數指定本機時指定參數"rpcap://" 或 預定義宏PCAP_SRC_IF_STRING
當指定遠程機器時需要按照"rpcap://host:port"的格式,默認端口號為2002
遠程機器有密碼時需要指定用戶名和密碼。

struct pcap_rmtauth
{
    
    int type;   //#define RPCAP_RMTAUTH_NULL 0  或   用戶名密碼驗證#define RPCAP_RMTAUTH_PWD 1
    

    char *username;  //用戶名
    

    char *password;  //密碼
};

// demo1.cpp : 定義控制臺應用程序的入口點。
//

#include "stdafx.h"
#include <iostream>
#include <WinSock2.h>
#include <Windows.h>

//the macro HAVE_REMOTE must define before
#ifndef  HAVE_REMOTE
#define HAVE_REMOTE
#endif

#include <pcap.h>
#include <remote-ext.h>

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "packet.lib")
#pragma comment(lib, "wpcap.lib")

using namespace std;


/************************************************************************/
/* platfor win7 x64
 * version of winpcap: 4.1.3
 * version of developping tool: 4.1.2

 * notes: The local/remote machine must install the Winpcap
          and 
          Start the server(go to the install path and double click rpcapd.exe).

          You must look out that the DEFAULT PORT  is 2002. 
          If you use another port, the pcap_findalldevs_ex  function return -1
          and the erro information in errbuf is 
          [Is the server properly installed on XXX.XXX.XXX.XXX?  
          connect() failed: 由于目標計算機積極拒絕,無法連接。  (code 10061) ]

/************************************************************************/

int _tmain(int argc, _TCHAR* argv[])
{
    //char* pSource = "rpcap://";                  //localhost
    char* pSource = "rpcap://XXX.XXX.XXX.XXX:2002";  //remote PC

    struct pcap_rmtauth stAuth = {0};
    stAuth.type = RPCAP_RMTAUTH_PWD;     
    stAuth.username = "xxxxx";
    stAuth.password = "xxxxxxxxxxx";

    pcap_if_t* pPcapIft = NULL;
    char chBuffer[PCAP_BUF_SIZE] = {0};

    
    int nCount = 0;

    if (0 == pcap_findalldevs_ex(pSource, &stAuth, &pPcapIft, chBuffer))
    {
        for (pcap_if_t* pcap = pPcapIft; pcap != NULL; pcap = pcap->next)
        {
            cout << endl << "-----------  device "
                 << nCount ++
                 << " -------------" << endl;

            cout << pcap->name 
                 << endl
                 << pcap->description
                 << endl
                 << pcap->flags
                 << endl;

            cout << "-------- Output details below -----" << endl;

            for (struct pcap_addr* pAddr = pcap->addresses;
                pAddr != NULL; pAddr = pAddr->next)
            {
                
                struct sockaddr_in* psockAddr = (struct sockaddr_in*)(pAddr->addr);
                if (NULL != psockAddr)
                {
                    cout << "IP is " << inet_ntoa(psockAddr->sin_addr) << endl;
                    cout << "Port is " << ntohs(psockAddr->sin_port) << endl;
                    cout << "Family is " << psockAddr->sin_family << endl;

                    cout << "-------" << endl;
                }
                

                psockAddr = (struct sockaddr_in*)(pAddr->dstaddr);
                if (NULL != psockAddr)
                {
                    cout << "Mask IP is " << inet_ntoa(psockAddr->sin_addr) << endl;
                    cout << "Mask Port is " << ntohs(psockAddr->sin_port) << endl;
                    cout << "Mask Family is " << psockAddr->sin_family << endl;

                    cout << "-------" << endl;
                }

                


                psockAddr = (struct sockaddr_in*)(pAddr->broadaddr);
                if (NULL != psockAddr)
                {
                    cout << "Broadcast IP is " << inet_ntoa(psockAddr->sin_addr) << endl;
                    cout << "Broadcast Port is " << ntohs(psockAddr->sin_port) << endl;
                    cout << "Broadcast Family is " << psockAddr->sin_family << endl;

                }


                psockAddr = (struct sockaddr_in*)(pAddr->dstaddr);
                if (NULL != psockAddr)
                {
                    cout << "P2P IP is " << inet_ntoa(psockAddr->sin_addr) << endl;
                    cout << "P2P Port is " << ntohs(psockAddr->sin_port) << endl;
                    cout << "P2P Family is " << psockAddr->sin_family << endl;
                }

                cout << "---------------------------------------" << endl << endl << endl;
                
            } //for


        } //for


        pcap_freealldevs(pPcapIft);

    } //if
    else
    {
        cerr << endl << "Last error is " << GetLastError() << endl
             << chBuffer << endl;
    }

    system("pause");

    return 0;
}

5、運行結果

本機測試

遠程機器測試

總結

以上是生活随笔為你收集整理的Windows下配置使用WinPcap的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩av在线一区二区三区 | 精品一区二区三区国产 | 绿帽人妻精品一区二区 | 夜夜撸网站 | 亚洲欧美日韩高清 | 伊人9| 综合伊人av| 色欲av永久无码精品无码蜜桃 | 鲁鲁在线 | 香蕉视频黄色片 | 九九视频免费在线观看 | 中文字幕五码 | www.欧美com | 熊猫电影yy8y全部免费观看 | 午夜视频久久久 | 美女的胸给男人玩视频 | 国产一区不卡视频 | 日韩福利在线播放 | 懂色av一区二区夜夜嗨 | 免费观看一区二区三区毛片 | 日本一区免费视频 | 丝袜老师扒开让我了一夜漫画 | 91美女免费看 | 午夜少妇影院 | 男人天堂国产 | 日日干日日干 | 得得的爱在线视频 | 亚洲欧美自拍视频 | 毛片随便看 | av资源在线免费观看 | 久久国产精品免费看 | 成人首页 | 亚洲永久精品国产 | k8yy毛片| 久久中字 | 国产色无码精品视频国产 | 在线观看av国产一区二区 | 另类激情亚洲 | 成人一级影片 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 怡红院av亚洲一区二区三区h | 亚洲看 | 五月天丁香婷 | 日韩日b| 欧美精品一区二区视频 | 邵氏电影《金莲外传2》免费观看 | 亚洲精品一区二区口爆 | 久久久久久久久久99精品 | 久久久精品在线观看 | 成人h动漫精品一区二区下载 | 国产亚洲精品久久久久婷婷瑜伽 | 色就是色av | 青青草原亚洲 | 公车乳尖揉捏酥软呻吟 | 粗了大了 整进去好爽视频 日本女优中文字幕 | 国产手机在线观看 | 亚洲午夜网站 | 日韩网站在线播放 | 91美女诱惑| 日韩在线成人 | 在线观看的黄网 | 亚洲AV成人无码电影在线观看 | 天堂在线资源网 | 国产a视频精品免费观看 | 黄色网页在线免费观看 | 少妇全黄性生交片 | 91欧美一区二区三区 | 日韩美女做爰高潮免费 | 亚洲男人天堂2023 | 国产成人亚洲综合a∨婷婷 台湾a级片 | 男裸体无遮挡网站 | 亚洲另类视频 | 激情三级在线 | 福利视频免费观看 | 黄色av免费 | 欧美三区在线观看 | 久久国色 | 一级片免费看视频 | 国产成人av一区二区三区不卡 | 看毛片网站 | 中文字幕+乱码+中文字幕明步 | 日韩一区二区在线观看 | 久久精品无码一区二区三区免费 | 天天爽夜夜 | h片在线免费 | 综合网在线视频 | 人妻无码一区二区三区久久 | tube国产麻豆 | va婷婷在线免费观看 | 99久久精品国产一区二区成人 | 国产三级aaa| 99久免费精品视频在线观78 | 有奶水的迷人少妇 | 69视频网 | 中文字幕在线观看网站 | 成人综合激情 | xxxx日本少妇 | 女女高潮h冰块play失禁百合 | 国产丰满果冻videossex |