upload
This commit is contained in:
+106
@@ -0,0 +1,106 @@
|
||||
#include "IPList.h"
|
||||
#include <regex>
|
||||
|
||||
bool IPList::CheckIPv4(std::string ip)
|
||||
{
|
||||
std::regex v4("^(((\\d{1,2})|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))\\.){3}((\\d{1,2})|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))$");
|
||||
return std::regex_match(ip, v4);
|
||||
}
|
||||
|
||||
IPList::IPList()
|
||||
{
|
||||
list.clear();
|
||||
}
|
||||
|
||||
IPList::IPList(std::initializer_list<std::string> list)
|
||||
{
|
||||
for (const auto& ele : list)
|
||||
this->list.insert(ele);
|
||||
}
|
||||
|
||||
IPList::IPList(const IPList& obj)
|
||||
{
|
||||
for (const auto& ele : obj.list)
|
||||
list.insert(ele);
|
||||
}
|
||||
|
||||
bool IPList::Push(std::string ip)
|
||||
{
|
||||
if (!CheckIPv4(ip))
|
||||
return false;
|
||||
list.insert(ip);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IPList::Pop(std::string ip)
|
||||
{
|
||||
if (!Exist(ip))
|
||||
return false;
|
||||
list.erase(ip);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IPList::Exist(std::string ip)
|
||||
{
|
||||
return (list.find(ip) != list.end());
|
||||
}
|
||||
|
||||
bool IPList::Exist(std::string ip) const
|
||||
{
|
||||
return (list.find(ip) != list.end());
|
||||
}
|
||||
|
||||
bool IPList::Empty()
|
||||
{
|
||||
return list.empty();
|
||||
}
|
||||
|
||||
size_t IPList::Size()
|
||||
{
|
||||
return list.size();
|
||||
}
|
||||
|
||||
auto IPList::begin()
|
||||
{
|
||||
return list.begin();
|
||||
}
|
||||
|
||||
auto IPList::end()
|
||||
{
|
||||
return list.end();
|
||||
}
|
||||
|
||||
auto IPList::rbegin()
|
||||
{
|
||||
return list.rbegin();
|
||||
}
|
||||
|
||||
auto IPList::rend()
|
||||
{
|
||||
return list.rend();
|
||||
}
|
||||
|
||||
auto IPList::begin() const
|
||||
{
|
||||
return list.begin();
|
||||
}
|
||||
|
||||
auto IPList::end() const
|
||||
{
|
||||
return list.end();
|
||||
}
|
||||
|
||||
auto IPList::rbegin() const
|
||||
{
|
||||
return list.rbegin();
|
||||
}
|
||||
|
||||
auto IPList::rend() const
|
||||
{
|
||||
return list.rend();
|
||||
}
|
||||
|
||||
bool IPList::operator<(const IPList& obj) const
|
||||
{
|
||||
return list < obj.list;
|
||||
}
|
||||
Reference in New Issue
Block a user