欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

IPV4掩码后地址计算

程序员文章站 2024-02-14 15:13:52
...

计算掩码后IP地址

template<class T>
class SingleInstance {
public:
    static inline T instance() {
        static T obj;
        return obj;
    }
private:
    SingleInstance() = default;
    ~SingleInstance() = default;
};
#include <stdint.h>
#include "single_instance.hpp"
class net_utility {
public:
    inline uint64_t get_mask(uint64_t ip, int mask) {
        if (ip > 0xFFFFFFFF) {
            return 0;
        }
        if (mask <= 0 || mask > 32) {
            return 0;
        }
        return ip & ((0xFFFFFFFF << (32 - mask)));
    }
};

#define G_NET_UTILITY SingleInstance<net_utility>::instance()
#include <iostream>
#include "net_utility.hpp"
int main(int argc, const char** argv) {
    uint64_t ip = 168432899;
    int mask = 24;
    uint64_t rs = G_NET_UTILITY.get_mask(ip, mask);
    std::cout << rs << std::endl;

    return 0;
}