怎么选择指定的网卡发包
如何选择指定的网卡发包?
如何从指定的网卡发包?
希望给出范例,谢谢!
------解决方案--------------------
typedef struct _MIB_IFROW
{
WCHAR wszName[MAX_INTERFACE_NAME_LEN];
DWORD dwIndex;
DWORD dwType;
DWORD dwMtu;
DWORD dwSpeed;
DWORD dwPhysAddrLen;
BYTE bPhysAddr[MAXLEN_PHYSADDR];
DWORD dwAdminStatus;
DWORD dwOperStatus;
DWORD dwLastChange;
DWORD dwInOctets;
DWORD dwInUcastPkts;
DWORD dwInNUcastPkts;
DWORD dwInDiscards;
DWORD dwInErrors;
DWORD dwInUnknownProtos;
DWORD dwOutOctets;
DWORD dwOutUcastPkts;
DWORD dwOutNUcastPkts;
DWORD dwOutDiscards;
DWORD dwOutErrors;
DWORD dwOutQLen;
DWORD dwDescrLen;
BYTE bDescr[MAXLEN_IFDESCR];
} MIB_IFROW,*PMIB_IFROW;
typedef struct _MIB_IFTABLE
{
DWORD dwNumEntries;
MIB_IFROW table[ANY_SIZE];
} MIB_IFTABLE, *PMIB_IFTABLE;
typedef DWORD (__stdcall *GIT)(PMIB_IFTABLE, PULONG, BOOL);
------解决方案--------------------
HINSTANCE dll = LoadLibrary( "iphlpapi.dll ");
GIT GetIfTable = (GIT)GetProcAddress(_dll, "GetIfTable ");
DWORD table_size = 0;
int ret = _GetIfTable(_mit, &table_size, true);
if(ret == ERROR_INSUFFICIENT_BUFFER)
{
char * buffer = new char[table_size];
::memset(buffer,0,table_size);
PMIB_IFTABLE mit = (PMIB_IFTABLE) buffer;
ret = GetIfTable(mit, &table_size, true);
if (ret == NO_ERROR)
{
//mit为所求
}
}
如何从指定的网卡发包?
希望给出范例,谢谢!
------解决方案--------------------
typedef struct _MIB_IFROW
{
WCHAR wszName[MAX_INTERFACE_NAME_LEN];
DWORD dwIndex;
DWORD dwType;
DWORD dwMtu;
DWORD dwSpeed;
DWORD dwPhysAddrLen;
BYTE bPhysAddr[MAXLEN_PHYSADDR];
DWORD dwAdminStatus;
DWORD dwOperStatus;
DWORD dwLastChange;
DWORD dwInOctets;
DWORD dwInUcastPkts;
DWORD dwInNUcastPkts;
DWORD dwInDiscards;
DWORD dwInErrors;
DWORD dwInUnknownProtos;
DWORD dwOutOctets;
DWORD dwOutUcastPkts;
DWORD dwOutNUcastPkts;
DWORD dwOutDiscards;
DWORD dwOutErrors;
DWORD dwOutQLen;
DWORD dwDescrLen;
BYTE bDescr[MAXLEN_IFDESCR];
} MIB_IFROW,*PMIB_IFROW;
typedef struct _MIB_IFTABLE
{
DWORD dwNumEntries;
MIB_IFROW table[ANY_SIZE];
} MIB_IFTABLE, *PMIB_IFTABLE;
typedef DWORD (__stdcall *GIT)(PMIB_IFTABLE, PULONG, BOOL);
------解决方案--------------------
HINSTANCE dll = LoadLibrary( "iphlpapi.dll ");
GIT GetIfTable = (GIT)GetProcAddress(_dll, "GetIfTable ");
DWORD table_size = 0;
int ret = _GetIfTable(_mit, &table_size, true);
if(ret == ERROR_INSUFFICIENT_BUFFER)
{
char * buffer = new char[table_size];
::memset(buffer,0,table_size);
PMIB_IFTABLE mit = (PMIB_IFTABLE) buffer;
ret = GetIfTable(mit, &table_size, true);
if (ret == NO_ERROR)
{
//mit为所求
}
}