Success Send one email to gmail server
[TortoiseGit.git] / src / Utils / NetAdapterInfo.h
blob0281441f8e944f133d29721d79849c50ed07d225
1 // OneNetAdapterInfo.h: interface for the COneNetAdapterInfo class.
2 //
3 //////////////////////////////////////////////////////////////////////
5 #if !defined(AFX_OneNetAdapterInfo_H__A899410F_5CFF_4958_80C4_D1AC693F62E3__INCLUDED_)
6 #define AFX_OneNetAdapterInfo_H__A899410F_5CFF_4958_80C4_D1AC693F62E3__INCLUDED_
8 #if _MSC_VER > 1000
9 #pragma once
10 #endif // _MSC_VER > 1000
13 ˵Ã÷
14 »ñÈ¡Íø¿¨ÐÅÏ¢£¬°üÀ¨IPµØÖ·¡¢DNS¡¢Íø¹Ø¡¢ÊÇ·ñΪ¶¯Ì¬IP¡¢DHCPµÈ£¬¸ÃÀ಻ÓöÁȡע²á±í¼´¿É»ñÈ¡×îеÄÍø¿¨ÐÅÏ¢
15 ÁíÍ⻹¿ÉÒÔÊÍ·ÅÍø¿¨µØÖ·²¢ÖØÐÂˢеØÖ·
18 #include <winsock2.h>
19 #include <iphlpapi.h>
20 #include <Afxtempl.h>
22 typedef struct _IPINFO
24 CString csIP;
25 CString csSubnet;
26 } t_IPINFO;
27 typedef CArray<t_IPINFO,t_IPINFO&> t_Ary_IPINFO;
29 typedef DWORD ( __stdcall *Func_OperateIP)( PIP_ADAPTER_INDEX_MAP AdapterInfo );
30 CString MacAddress2String ( int nPhysicalAddressLength, BYTE *pPhysicalAddress );
32 class COneNetAdapterInfo
34 public:
35 COneNetAdapterInfo ( IP_ADAPTER_INFO *pAdptInfo );
36 virtual ~COneNetAdapterInfo();
37 CString Get_Name() { return m_csName; }
38 CString Get_Desc() { return m_csDesc; }
39 BOOL ReleaseIP();
40 BOOL RenewIP();
41 CString GetAdapterTypeString ();
43 time_t Get_LeaseObtained() const;
44 time_t Get_LeaseExpired() const;
45 int Get_IPCount() const;
46 int Get_DNSCount() const;
47 CString Get_CurrentIP() const;
48 BOOL Is_DHCP_Used() const;
49 CString Get_DHCPAddr() const;
50 BOOL Is_Wins_Used() const;
51 CString Get_PrimaryWinsServer() const;
52 CString Get_SecondaryWinsServer() const;
53 int Get_GatewayCount() const;
54 DWORD Get_AdapterIndex() const;
55 UINT Get_AdapterType() const;
56 CString Get_IPAddr ( int nIndex ) const;
57 CString Get_Subnet ( int nIndex ) const;
58 CString Get_DNSAddr ( int nIndex ) const;
59 CString Get_GatewayAddr ( int nIndex ) const;
60 void Set_PhysicalAddress ( int nPhysicalAddressLength, BYTE *pPhysicalAddress );
61 CString Get_PhysicalAddressStr () { return MacAddress2String ( m_nPhysicalAddressLength, m_PhysicalAddress ); }
63 private:
64 BOOL Init ();
65 BOOL RenewReleaseIP( Func_OperateIP func );
67 public:
68 BOOL m_bInitOk;
69 private:
70 IP_ADAPTER_INFO m_AdptInfo;
71 CString m_csName;
72 CString m_csDesc;
73 t_IPINFO m_CurIPInfo; // this is also in the ip address list but this is the address currently active.
74 t_Ary_IPINFO m_Ary_IP;
75 CStringArray m_Ary_DNS;
76 CStringArray m_Ary_Gateway;
77 BYTE m_PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
78 int m_nPhysicalAddressLength;
81 class CNetAdapterInfo
83 public:
84 CNetAdapterInfo ();
85 ~CNetAdapterInfo();
86 int GetNetCardCount () { return m_Ary_NetAdapterInfo.GetSize(); }
87 COneNetAdapterInfo* Get_OneNetAdapterInfo ( int nIndex );
88 COneNetAdapterInfo* CNetAdapterInfo::Get_OneNetAdapterInfo ( DWORD dwIndex );
89 void Refresh ();
91 private:
92 int EnumNetworkAdapters ();
93 void DeleteAllNetAdapterInfo();
94 BOOL GetAdapterAddress ();
96 private:
97 CPtrArray m_Ary_NetAdapterInfo;
100 #endif // !defined(AFX_OneNetAdapterInfo_H__A899410F_5CFF_4958_80C4_D1AC693F62E3__INCLUDED_)