forked from Hay1tsme/artemis
add get_ip_addr util function for servers behind proxies
This commit is contained in:
@ -12,8 +12,8 @@ from Crypto.Signature import PKCS1_v1_5
|
||||
from time import strptime
|
||||
|
||||
from core.config import CoreConfig
|
||||
from core.data import Data
|
||||
from core.utils import Utils
|
||||
from core.data import Data
|
||||
from core.const import *
|
||||
|
||||
|
||||
@ -69,7 +69,7 @@ class AllnetServlet:
|
||||
)
|
||||
|
||||
def handle_poweron(self, request: Request, _: Dict):
|
||||
request_ip = request.getClientAddress().host
|
||||
request_ip = Utils.get_ip_addr(request)
|
||||
try:
|
||||
req_dict = self.allnet_req_to_dict(request.content.getvalue())
|
||||
if req_dict is None:
|
||||
@ -162,7 +162,7 @@ class AllnetServlet:
|
||||
return self.dict_to_http_form_string([vars(resp)]).encode("utf-8")
|
||||
|
||||
def handle_dlorder(self, request: Request, _: Dict):
|
||||
request_ip = request.getClientAddress().host
|
||||
request_ip = Utils.get_ip_addr(request)
|
||||
try:
|
||||
req_dict = self.allnet_req_to_dict(request.content.getvalue())
|
||||
if req_dict is None:
|
||||
@ -255,7 +255,7 @@ class AllnetServlet:
|
||||
return resp_str.encode("utf-8")
|
||||
|
||||
def handle_naomitest(self, request: Request, _: Dict) -> bytes:
|
||||
self.logger.info(f"Ping from {request.getClientAddress().host}")
|
||||
self.logger.info(f"Ping from {Utils.get_ip_addr(request)}")
|
||||
return b"naomi ok"
|
||||
|
||||
def kvp_to_dict(self, kvp: List[str]) -> List[Dict[str, Any]]:
|
||||
|
@ -10,9 +10,8 @@ from twisted.python.components import registerAdapter
|
||||
import jinja2
|
||||
import bcrypt
|
||||
|
||||
from core.config import CoreConfig
|
||||
from core import CoreConfig, Utils
|
||||
from core.data import Data
|
||||
from core.utils import Utils
|
||||
|
||||
|
||||
class IUserSession(Interface):
|
||||
@ -143,7 +142,7 @@ class FE_Gate(FE_Base):
|
||||
|
||||
def render_POST(self, request: Request):
|
||||
uri = request.uri.decode()
|
||||
ip = request.getClientAddress().host
|
||||
ip = Utils.get_ip_addr(request)
|
||||
|
||||
if uri == "/gate/gate.login":
|
||||
access_code: str = request.args[b"access_code"][0].decode()
|
||||
|
@ -6,7 +6,7 @@ from twisted.web.http import Request
|
||||
from datetime import datetime
|
||||
import pytz
|
||||
|
||||
from core.config import CoreConfig
|
||||
from core import CoreConfig
|
||||
from core.utils import Utils
|
||||
|
||||
|
||||
@ -52,6 +52,8 @@ class MuchaServlet:
|
||||
|
||||
def handle_boardauth(self, request: Request, _: Dict) -> bytes:
|
||||
req_dict = self.mucha_preprocess(request.content.getvalue())
|
||||
client_ip = Utils.get_ip_addr(request)
|
||||
|
||||
if req_dict is None:
|
||||
self.logger.error(
|
||||
f"Error processing mucha request {request.content.getvalue()}"
|
||||
@ -61,7 +63,7 @@ class MuchaServlet:
|
||||
req = MuchaAuthRequest(req_dict)
|
||||
self.logger.debug(f"Mucha request {vars(req)}")
|
||||
self.logger.info(
|
||||
f"Boardauth request from {request.getClientAddress().host} for {req.gameVer}"
|
||||
f"Boardauth request from {client_ip} for {req.gameVer}"
|
||||
)
|
||||
|
||||
if req.gameCd not in self.mucha_registry:
|
||||
@ -80,6 +82,8 @@ class MuchaServlet:
|
||||
|
||||
def handle_updatecheck(self, request: Request, _: Dict) -> bytes:
|
||||
req_dict = self.mucha_preprocess(request.content.getvalue())
|
||||
client_ip = Utils.get_ip_addr(request)
|
||||
|
||||
if req_dict is None:
|
||||
self.logger.error(
|
||||
f"Error processing mucha request {request.content.getvalue()}"
|
||||
@ -89,7 +93,7 @@ class MuchaServlet:
|
||||
req = MuchaUpdateRequest(req_dict)
|
||||
self.logger.debug(f"Mucha request {vars(req)}")
|
||||
self.logger.info(
|
||||
f"Updatecheck request from {request.getClientAddress().host} for {req.gameVer}"
|
||||
f"Updatecheck request from {client_ip} for {req.gameVer}"
|
||||
)
|
||||
|
||||
if req.gameCd not in self.mucha_registry:
|
||||
|
@ -1,5 +1,6 @@
|
||||
from typing import Dict, Any
|
||||
from types import ModuleType
|
||||
from twisted.web.http import Request
|
||||
import logging
|
||||
import importlib
|
||||
from os import walk
|
||||
@ -21,3 +22,7 @@ class Utils:
|
||||
logging.getLogger("core").error(f"get_all_titles: {dir} - {e}")
|
||||
raise
|
||||
return ret
|
||||
|
||||
@classmethod
|
||||
def get_ip_addr(cls, req: Request) -> str:
|
||||
return req.getAllHeaders()[b"x-forwarded-for"].decode() if b"x-forwarded-for" in req.getAllHeaders() else req.getClientAddress().host
|
||||
|
Reference in New Issue
Block a user