⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ip_alias.h

📁 实时监控
💻 H
字号:
#ifndef _IP_ALIAS_H
#define _IP_ALIAS_H

#include "vector"
#include "ip_port.h"

//////////////////////////////////////////////////////////////////////////
// IP别名项
//##ModelId=3F90BAB8039A
class ip_alias
{
	//##ModelId=3F90BAB803AF
	ip_port ip;
	//##ModelId=3F90BAB803B8
	CString alias;

public:
	//##ModelId=3F90BAB90034
	friend bool operator==(const ip_alias& it1, const ip_alias& it2);
	//##ModelId=3F90BAB803C2
	ip_alias(){}
	//##ModelId=3F90BAB803C3
	ip_alias(ip_port _ip){ip = _ip; alias.Empty();}
	//##ModelId=3F90BAB803CC
	ip_alias(LPCTSTR al, LPCTSTR lpszIPPort)
	{
		alias = al; ip = lpszIPPort;
	}
	//##ModelId=3F90BAB803D7
	ip_alias(const ip_alias& ipt)
	{
		*this = ipt;
	}
	//##ModelId=3F90BAB803E0
	ip_alias& operator=(const ip_alias& ipt)
	{
		alias = ipt.alias;
		ip = ipt.ip;
		return *this;
	}
	//##ModelId=3F90BAB90002
	operator LPCTSTR() {return ip;}
	//##ModelId=3F90BAB90003
	CString str_ip()
	{
		return ip.str_ip();
	}
	//##ModelId=3F90BAB9000C
	CString get_alias()
	{
		return alias;
	}
	//##ModelId=3F90BAB9000D
	USHORT look_port() const
	{
		return ip.look_port();
	}
	//##ModelId=3F90BAB90017
	USHORT link_port() const
	{
		return ip.link_port();
	}
	//##ModelId=3F90BAB90020
	ULONG get_ip() const
	{
		return ip.get_ip();
	}
	//##ModelId=3F90BAB90022
	ip_port get_ip_port()
	{
		return ip;
	}
	//##ModelId=3F90BAB9002A
	void remove_from_reg();
	//##ModelId=3F90BAB9002B
	void save_to_reg();

};

//////////////////////////////////////////////////////////////////////////
// IP别名管理器
//##ModelId=3F90BAB90052
class ip_alias_mgr
{
	//##ModelId=3F90BAB900DF
	typedef std::vector<ip_alias> ip_alias_list;
	//##ModelId=3F90BAB90067
	ip_alias_list ial;

public:
	//##ModelId=3F90BAB90070
	void add(LPCTSTR alias, LPCTSTR ipport);
	//##ModelId=3F90BAB9007B
	void remove_by_alias(LPCTSTR alias);
	//##ModelId=3F90BAB90085
	void remove_by_ip_port(LPCTSTR ipport);
	
	/// 删除所有
	//##ModelId=3F90BAB9008F
	void clear();
	
	//##ModelId=3F90BAB90098
	int count() const;
	//##ModelId=3F90BAB900A2
	ip_alias& get(int index);

	//##ModelId=3F90BAB900AC
	void update();
	//##ModelId=3F90BAB900AD
	void load_reg();
	//##ModelId=3F90BAB900B6
	void save_reg();

	//##ModelId=3F90BAB900B7
	ip_alias& get(LPCTSTR alias);
	
	//##ModelId=3F90BAB900C1
	ip_port trans_ip(LPCTSTR ip_or_alias);
	//##ModelId=3F90BAB900CA
	CString get_alias(const ip_port& ip);
	//##ModelId=3F90BAB900D4
	CString get_alias(ULONG ip, USHORT port);
};

extern bool operator==(const ip_alias& it1, const ip_alias& it2);

#endif	// _IP_ALIAS_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -