Decompile 3 functions in Source/Utility/NIPAddr.cpp, Source/Utility/NIPAddr.h
Batch #853 by ragnarok-clanker: 0 byte-identical, 3 confirmed by peer review. - fn_07599 NIPAddr::NIPAddr: logic confirmed by peer review - fn_07601 NIPAddr::~NIPAddr: logic confirmed by peer review - fn_07603 NIPAddr::IsPrivateAddress: logic confirmed by peer review Reviewed-by: ragnarok-clanker Adds to the build: Source/Utility/NIPAddr.cpp
This commit is contained in:
parent
81e3560708
commit
e99b978f19
3 changed files with 72 additions and 0 deletions
51
Source/Utility/NIPAddr.cpp
Normal file
51
Source/Utility/NIPAddr.cpp
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#include <winsock2.h>
|
||||
|
||||
#include "Utility/NIPAddr.h"
|
||||
|
||||
// FUNCTION: fn_07599
|
||||
NIPAddr::NIPAddr(std::string text) {
|
||||
std::string copy(text);
|
||||
this->address = inet_addr(copy.c_str());
|
||||
}
|
||||
|
||||
// FUNCTION: fn_07601
|
||||
NIPAddr::~NIPAddr() {
|
||||
}
|
||||
|
||||
// FUNCTION: fn_07603
|
||||
bool NIPAddr::IsPrivateAddress(std::uint32_t address) {
|
||||
const std::uint32_t swapped = (address >> 24) | ((address >> 8) & 0x0000FF00u) | ((address << 8) & 0x00FF0000u) | (address << 24);
|
||||
std::uint32_t lower;
|
||||
std::uint32_t upper;
|
||||
{
|
||||
NIPAddr first(std::string("10.0.0.0"));
|
||||
lower = first.address;
|
||||
}
|
||||
{
|
||||
NIPAddr last(std::string("10.255.255.255"));
|
||||
upper = last.address;
|
||||
}
|
||||
if (swapped >= lower && swapped <= upper) {
|
||||
return true;
|
||||
}
|
||||
{
|
||||
NIPAddr first(std::string("172.16.0.0"));
|
||||
lower = first.address;
|
||||
}
|
||||
{
|
||||
NIPAddr last(std::string("172.31.255.255"));
|
||||
upper = last.address;
|
||||
}
|
||||
if (swapped >= lower && swapped <= upper) {
|
||||
return true;
|
||||
}
|
||||
{
|
||||
NIPAddr first(std::string("192.168.0.0"));
|
||||
lower = first.address;
|
||||
}
|
||||
{
|
||||
NIPAddr last(std::string("192.168.255.255"));
|
||||
upper = last.address;
|
||||
}
|
||||
return swapped >= lower && swapped <= upper;
|
||||
}
|
||||
20
Source/Utility/NIPAddr.h
Normal file
20
Source/Utility/NIPAddr.h
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#ifndef RAGNAROK_SOURCE_UTILITY_NIPADDR_H
|
||||
#define RAGNAROK_SOURCE_UTILITY_NIPADDR_H
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
class NIPAddr {
|
||||
public:
|
||||
explicit NIPAddr(std::string text);
|
||||
virtual ~NIPAddr();
|
||||
static bool IsPrivateAddress(std::uint32_t address);
|
||||
|
||||
/* 0004 */ std::uint32_t address;
|
||||
};
|
||||
|
||||
#if defined(_WIN32) && !defined(_WIN64)
|
||||
static_assert(sizeof(NIPAddr) == 8);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -601,6 +601,7 @@
|
|||
"Source/Utility/Math/ClientAngles.cpp": 0,
|
||||
"Source/Utility/Math/RadialGrid.cpp": 0,
|
||||
"Source/Utility/Math/RayTriangle.cpp": 0,
|
||||
"Source/Utility/NIPAddr.cpp": 0,
|
||||
"Source/Utility/ProcessSecurity.cpp": 0,
|
||||
"Source/Utility/Text/Base64.cpp": 0,
|
||||
"Source/Utility/Text/FormatString.cpp": 0,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue