ServerCore/IPAddress.cpp
2024-07-10 13:30:18 -07:00

60 lines
1.4 KiB
C++

#include "IPAddress.h"
#include <cstring>
#include <sstream>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
namespace core {
IPAddress::IPAddress() {
addressLength = sizeof(addr);
}
IPAddress::IPAddress(std::string address) {
std::string url = address.substr(0, address.find(":"));
std::string s_port = address.substr(address.find(":") + 1);
std::stringstream convert(s_port);
short int port = 0;
convert >> port;
IPAddress(url, port);
}
IPAddress::IPAddress(std::string address, int port) {
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
struct hostent *hp = gethostbyname(address.c_str());
memcpy((void *)&addr.sin_addr, hp->h_addr_list[0], hp->h_length);
addressLength = sizeof(addr);
}
IPAddress::~IPAddress() {
}
struct sockaddr * IPAddress::getPointer() {
return (sockaddr *)&addr;
}
std::string IPAddress::getClientAddress() {
std::string result;
return result;
}
std::string IPAddress::getClientAddressAndPort() {
std::stringstream out;
out << inet_ntoa(addr.sin_addr);
out << ":" << addr.sin_port;
return out.str();
}
int IPAddress::getClientPort() {
int result = -1;
return result;
}
}