2025-07-23 01:35:14 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
#include <iostream>
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
#include <list>
|
|
|
|
|
|
#include <mutex>
|
|
|
|
|
|
|
|
|
|
|
|
#define IPV4_CHAR_LENGTH 22
|
|
|
|
|
|
#define MAC_CHAR_LENGTH 18
|
|
|
|
|
|
#define NAME_MAXPATH 256
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
unsigned int nAdapterIndex;
|
|
|
|
|
|
char szNetCardName[NAME_MAXPATH]; //<
|
|
|
|
|
|
unsigned char byLocalIP[4];
|
|
|
|
|
|
unsigned char byMacAddress[6];
|
|
|
|
|
|
unsigned char bySubMask[4];
|
|
|
|
|
|
unsigned char byGetWay[4];
|
|
|
|
|
|
unsigned char byBroadCastIP[4];
|
|
|
|
|
|
} SVrCardInfo;
|
|
|
|
|
|
|
|
|
|
|
|
std::ostream& operator<<(std::ostream& os, const SVrCardInfo& sAction);
|
|
|
|
|
|
|
|
|
|
|
|
namespace CVrNetUtils
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>豸
|
|
|
|
|
|
bool QueryAllNetworkInfo(std::list<SVrCardInfo>& lstNetCardInfo);
|
|
|
|
|
|
|
|
|
|
|
|
/// ip<69>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
|
|
|
|
|
|
bool IsValidIP(const char szIPv4[IPV4_CHAR_LENGTH]);
|
|
|
|
|
|
|
|
|
|
|
|
bool SetAddrMaskGateWay(const char *ifname, const char *Ipaddr, const char *mask, const char *gateway);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD>IP
|
|
|
|
|
|
bool SetIPv4Address(const char ip[IPV4_CHAR_LENGTH], const char *devName);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><>ȡIP
|
|
|
|
|
|
bool GetIPv4Address(char ip[IPV4_CHAR_LENGTH], const char *devName);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
|
bool SetIPv4NetMask(const char ip[IPV4_CHAR_LENGTH], const char *devName);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool GetIPv4NetMask(char ip[IPV4_CHAR_LENGTH], const char *devName);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><>ȡ<EFBFBD>㲥<EFBFBD><E3B2A5>ַ
|
|
|
|
|
|
bool GetIPv4BroadIP(char ip[IPV4_CHAR_LENGTH], const char *devName);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
|
|
|
|
|
bool GetLocalMAC(char byMac[MAC_CHAR_LENGTH], const char *devName);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool SetGateWay(const char ip[IPV4_CHAR_LENGTH], const char *devName);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool GetGateWay(char ip[IPV4_CHAR_LENGTH], const char *devName);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><>IP<49>ַ<EFBFBD><D6B7><EFBFBD>תΪByte
|
|
|
|
|
|
bool IPString2Byte(const char* szIP, unsigned char byIP[4]);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><>IP<49><50>ByteתΪ<D7AA>ַ<EFBFBD><D6B7><EFBFBD>
|
|
|
|
|
|
void IPByte2String(const unsigned char byIP[4], char szIP[IPV4_CHAR_LENGTH]);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>㲥<EFBFBD><E3B2A5>ַ
|
|
|
|
|
|
void CalcBroadCastIP(unsigned char byIP[4], unsigned char byMask[4], unsigned char byBroadCast[4]);
|
|
|
|
|
|
|
|
|
|
|
|
}
|