GrabBag/VrUtils/Inc/VrNetUtils.h

69 lines
1.8 KiB
C
Raw Normal View History

2025-06-08 12:48:04 +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]);
}