mirror of
https://github.com/ChronosX88/nesca.git
synced 2024-10-18 10:21:03 +00:00
30 lines
557 B
C
30 lines
557 B
C
|
#pragma once
|
||
|
#ifndef RAND_H
|
||
|
#define RAND_H
|
||
|
|
||
|
#include <vector>
|
||
|
#include <algorithm>
|
||
|
|
||
|
struct IPRangeHolder {
|
||
|
unsigned int ip1;
|
||
|
unsigned int ip2;
|
||
|
};
|
||
|
|
||
|
class IPRandomizer
|
||
|
{
|
||
|
private:
|
||
|
std::vector<IPRangeHolder> ipRangeVec;
|
||
|
std::vector<unsigned int> shuffledRange;
|
||
|
std::vector<unsigned int> shuffleOffset;
|
||
|
int shuffleGap = 20000;
|
||
|
private:
|
||
|
void shuffleRange();
|
||
|
public:
|
||
|
IPRandomizer(std::vector<IPRangeHolder> ipRangeVec, int shuffleGap = 20000);
|
||
|
IPRandomizer(std::vector<IPRangeHolder> ipRangeVec);
|
||
|
~IPRandomizer();
|
||
|
|
||
|
unsigned int getNext();
|
||
|
};
|
||
|
|
||
|
#endif
|