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

📄 ~ip_alias.~h

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

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

//////////////////////////////////////////////////////////////////////////
// IP别名项
class ip_alias
{
	ip_port ip;
	CString alias;

public:
	friend bool operator==(const ip_alias& it1, const ip_alias& it2);
	ip_alias(){}
	ip_alias(ip_port _ip){ip = _ip; alias.Empty();}
	ip_alias(LPCTSTR al, LPCTSTR lpszIPPort)
	{
		alias = al; ip = lpszIPPort;
	}
	ip_alias(const ip_alias& ipt)
	{
		*this = ipt;
	}
	ip_alias& operator=(const ip_alias& ipt)
	{
		alias = ipt.alias;
		ip = ipt.ip;
		return *this;
	}
	operator LPCTSTR() {return ip;}
	CString str_ip()
	{
		return ip.str_ip();
	}
	CString get_alias()
	{
		return alias;
	}
	USHORT look_port() const
	{
		return ip.look_port();
	}
	USHORT link_port() const
	{
		return ip.link_port();
	}
	ULONG get_ip() const
	{
		return ip.get_ip();
	}
	ip_port get_ip_port()
	{
		return ip;
	}
	void remove_from_reg();
	void save_to_reg();

};

//////////////////////////////////////////////////////////////////////////
// IP别名管理器
class ip_alias_mgr
{
	typedef std::vector<ip_alias> ip_alias_list;
	ip_alias_list ial;

public:
	void add(LPCTSTR alias, LPCTSTR ipport);
	void remove_by_alias(LPCTSTR alias);
	void remove_by_ip_port(LPCTSTR ipport);
	
	/// 删除所有
	void clear();
	
	int count() const;
	ip_alias& get(int index);

	void update();
	void load_reg();
	void save_reg();

	ip_alias& get(LPCTSTR alias);
	
	ip_port trans_ip(LPCTSTR ip_or_alias);
	CString get_alias(const ip_port& ip);
	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 + -